<!DOCTYPE html>
<html>
<head><meta charset="utf-8" />

<title>20春_API_人工智能与机器学习_week05</title>

<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>



<style type="text/css">
    /*!
*
* Twitter Bootstrap
*
*/
/*!
 * Bootstrap v3.3.7 (http://getbootstrap.com)
 * Copyright 2011-2016 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background-color: transparent;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
mark {
  background: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  box-sizing: content-box;
  height: 0;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
legend {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: bold;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
  *,
  *:before,
  *:after {
    background: transparent !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .navbar {
    display: none;
  }
  .btn > .caret,
  .dropup > .btn > .caret {
    border-top-color: #000 !important;
  }
  .label {
    border: 1px solid #000;
  }
  .table {
    border-collapse: collapse !important;
  }
  .table td,
  .table th {
    background-color: #fff !important;
  }
  .table-bordered th,
  .table-bordered td {
    border: 1px solid #ddd !important;
  }
}
@font-face {
  font-family: 'Glyphicons Halflings';
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
  position: relative;
  top: 1px;
  display: inline-block;
  font-family: 'Glyphicons Halflings';
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.glyphicon-asterisk:before {
  content: "\002a";
}
.glyphicon-plus:before {
  content: "\002b";
}
.glyphicon-euro:before,
.glyphicon-eur:before {
  content: "\20ac";
}
.glyphicon-minus:before {
  content: "\2212";
}
.glyphicon-cloud:before {
  content: "\2601";
}
.glyphicon-envelope:before {
  content: "\2709";
}
.glyphicon-pencil:before {
  content: "\270f";
}
.glyphicon-glass:before {
  content: "\e001";
}
.glyphicon-music:before {
  content: "\e002";
}
.glyphicon-search:before {
  content: "\e003";
}
.glyphicon-heart:before {
  content: "\e005";
}
.glyphicon-star:before {
  content: "\e006";
}
.glyphicon-star-empty:before {
  content: "\e007";
}
.glyphicon-user:before {
  content: "\e008";
}
.glyphicon-film:before {
  content: "\e009";
}
.glyphicon-th-large:before {
  content: "\e010";
}
.glyphicon-th:before {
  content: "\e011";
}
.glyphicon-th-list:before {
  content: "\e012";
}
.glyphicon-ok:before {
  content: "\e013";
}
.glyphicon-remove:before {
  content: "\e014";
}
.glyphicon-zoom-in:before {
  content: "\e015";
}
.glyphicon-zoom-out:before {
  content: "\e016";
}
.glyphicon-off:before {
  content: "\e017";
}
.glyphicon-signal:before {
  content: "\e018";
}
.glyphicon-cog:before {
  content: "\e019";
}
.glyphicon-trash:before {
  content: "\e020";
}
.glyphicon-home:before {
  content: "\e021";
}
.glyphicon-file:before {
  content: "\e022";
}
.glyphicon-time:before {
  content: "\e023";
}
.glyphicon-road:before {
  content: "\e024";
}
.glyphicon-download-alt:before {
  content: "\e025";
}
.glyphicon-download:before {
  content: "\e026";
}
.glyphicon-upload:before {
  content: "\e027";
}
.glyphicon-inbox:before {
  content: "\e028";
}
.glyphicon-play-circle:before {
  content: "\e029";
}
.glyphicon-repeat:before {
  content: "\e030";
}
.glyphicon-refresh:before {
  content: "\e031";
}
.glyphicon-list-alt:before {
  content: "\e032";
}
.glyphicon-lock:before {
  content: "\e033";
}
.glyphicon-flag:before {
  content: "\e034";
}
.glyphicon-headphones:before {
  content: "\e035";
}
.glyphicon-volume-off:before {
  content: "\e036";
}
.glyphicon-volume-down:before {
  content: "\e037";
}
.glyphicon-volume-up:before {
  content: "\e038";
}
.glyphicon-qrcode:before {
  content: "\e039";
}
.glyphicon-barcode:before {
  content: "\e040";
}
.glyphicon-tag:before {
  content: "\e041";
}
.glyphicon-tags:before {
  content: "\e042";
}
.glyphicon-book:before {
  content: "\e043";
}
.glyphicon-bookmark:before {
  content: "\e044";
}
.glyphicon-print:before {
  content: "\e045";
}
.glyphicon-camera:before {
  content: "\e046";
}
.glyphicon-font:before {
  content: "\e047";
}
.glyphicon-bold:before {
  content: "\e048";
}
.glyphicon-italic:before {
  content: "\e049";
}
.glyphicon-text-height:before {
  content: "\e050";
}
.glyphicon-text-width:before {
  content: "\e051";
}
.glyphicon-align-left:before {
  content: "\e052";
}
.glyphicon-align-center:before {
  content: "\e053";
}
.glyphicon-align-right:before {
  content: "\e054";
}
.glyphicon-align-justify:before {
  content: "\e055";
}
.glyphicon-list:before {
  content: "\e056";
}
.glyphicon-indent-left:before {
  content: "\e057";
}
.glyphicon-indent-right:before {
  content: "\e058";
}
.glyphicon-facetime-video:before {
  content: "\e059";
}
.glyphicon-picture:before {
  content: "\e060";
}
.glyphicon-map-marker:before {
  content: "\e062";
}
.glyphicon-adjust:before {
  content: "\e063";
}
.glyphicon-tint:before {
  content: "\e064";
}
.glyphicon-edit:before {
  content: "\e065";
}
.glyphicon-share:before {
  content: "\e066";
}
.glyphicon-check:before {
  content: "\e067";
}
.glyphicon-move:before {
  content: "\e068";
}
.glyphicon-step-backward:before {
  content: "\e069";
}
.glyphicon-fast-backward:before {
  content: "\e070";
}
.glyphicon-backward:before {
  content: "\e071";
}
.glyphicon-play:before {
  content: "\e072";
}
.glyphicon-pause:before {
  content: "\e073";
}
.glyphicon-stop:before {
  content: "\e074";
}
.glyphicon-forward:before {
  content: "\e075";
}
.glyphicon-fast-forward:before {
  content: "\e076";
}
.glyphicon-step-forward:before {
  content: "\e077";
}
.glyphicon-eject:before {
  content: "\e078";
}
.glyphicon-chevron-left:before {
  content: "\e079";
}
.glyphicon-chevron-right:before {
  content: "\e080";
}
.glyphicon-plus-sign:before {
  content: "\e081";
}
.glyphicon-minus-sign:before {
  content: "\e082";
}
.glyphicon-remove-sign:before {
  content: "\e083";
}
.glyphicon-ok-sign:before {
  content: "\e084";
}
.glyphicon-question-sign:before {
  content: "\e085";
}
.glyphicon-info-sign:before {
  content: "\e086";
}
.glyphicon-screenshot:before {
  content: "\e087";
}
.glyphicon-remove-circle:before {
  content: "\e088";
}
.glyphicon-ok-circle:before {
  content: "\e089";
}
.glyphicon-ban-circle:before {
  content: "\e090";
}
.glyphicon-arrow-left:before {
  content: "\e091";
}
.glyphicon-arrow-right:before {
  content: "\e092";
}
.glyphicon-arrow-up:before {
  content: "\e093";
}
.glyphicon-arrow-down:before {
  content: "\e094";
}
.glyphicon-share-alt:before {
  content: "\e095";
}
.glyphicon-resize-full:before {
  content: "\e096";
}
.glyphicon-resize-small:before {
  content: "\e097";
}
.glyphicon-exclamation-sign:before {
  content: "\e101";
}
.glyphicon-gift:before {
  content: "\e102";
}
.glyphicon-leaf:before {
  content: "\e103";
}
.glyphicon-fire:before {
  content: "\e104";
}
.glyphicon-eye-open:before {
  content: "\e105";
}
.glyphicon-eye-close:before {
  content: "\e106";
}
.glyphicon-warning-sign:before {
  content: "\e107";
}
.glyphicon-plane:before {
  content: "\e108";
}
.glyphicon-calendar:before {
  content: "\e109";
}
.glyphicon-random:before {
  content: "\e110";
}
.glyphicon-comment:before {
  content: "\e111";
}
.glyphicon-magnet:before {
  content: "\e112";
}
.glyphicon-chevron-up:before {
  content: "\e113";
}
.glyphicon-chevron-down:before {
  content: "\e114";
}
.glyphicon-retweet:before {
  content: "\e115";
}
.glyphicon-shopping-cart:before {
  content: "\e116";
}
.glyphicon-folder-close:before {
  content: "\e117";
}
.glyphicon-folder-open:before {
  content: "\e118";
}
.glyphicon-resize-vertical:before {
  content: "\e119";
}
.glyphicon-resize-horizontal:before {
  content: "\e120";
}
.glyphicon-hdd:before {
  content: "\e121";
}
.glyphicon-bullhorn:before {
  content: "\e122";
}
.glyphicon-bell:before {
  content: "\e123";
}
.glyphicon-certificate:before {
  content: "\e124";
}
.glyphicon-thumbs-up:before {
  content: "\e125";
}
.glyphicon-thumbs-down:before {
  content: "\e126";
}
.glyphicon-hand-right:before {
  content: "\e127";
}
.glyphicon-hand-left:before {
  content: "\e128";
}
.glyphicon-hand-up:before {
  content: "\e129";
}
.glyphicon-hand-down:before {
  content: "\e130";
}
.glyphicon-circle-arrow-right:before {
  content: "\e131";
}
.glyphicon-circle-arrow-left:before {
  content: "\e132";
}
.glyphicon-circle-arrow-up:before {
  content: "\e133";
}
.glyphicon-circle-arrow-down:before {
  content: "\e134";
}
.glyphicon-globe:before {
  content: "\e135";
}
.glyphicon-wrench:before {
  content: "\e136";
}
.glyphicon-tasks:before {
  content: "\e137";
}
.glyphicon-filter:before {
  content: "\e138";
}
.glyphicon-briefcase:before {
  content: "\e139";
}
.glyphicon-fullscreen:before {
  content: "\e140";
}
.glyphicon-dashboard:before {
  content: "\e141";
}
.glyphicon-paperclip:before {
  content: "\e142";
}
.glyphicon-heart-empty:before {
  content: "\e143";
}
.glyphicon-link:before {
  content: "\e144";
}
.glyphicon-phone:before {
  content: "\e145";
}
.glyphicon-pushpin:before {
  content: "\e146";
}
.glyphicon-usd:before {
  content: "\e148";
}
.glyphicon-gbp:before {
  content: "\e149";
}
.glyphicon-sort:before {
  content: "\e150";
}
.glyphicon-sort-by-alphabet:before {
  content: "\e151";
}
.glyphicon-sort-by-alphabet-alt:before {
  content: "\e152";
}
.glyphicon-sort-by-order:before {
  content: "\e153";
}
.glyphicon-sort-by-order-alt:before {
  content: "\e154";
}
.glyphicon-sort-by-attributes:before {
  content: "\e155";
}
.glyphicon-sort-by-attributes-alt:before {
  content: "\e156";
}
.glyphicon-unchecked:before {
  content: "\e157";
}
.glyphicon-expand:before {
  content: "\e158";
}
.glyphicon-collapse-down:before {
  content: "\e159";
}
.glyphicon-collapse-up:before {
  content: "\e160";
}
.glyphicon-log-in:before {
  content: "\e161";
}
.glyphicon-flash:before {
  content: "\e162";
}
.glyphicon-log-out:before {
  content: "\e163";
}
.glyphicon-new-window:before {
  content: "\e164";
}
.glyphicon-record:before {
  content: "\e165";
}
.glyphicon-save:before {
  content: "\e166";
}
.glyphicon-open:before {
  content: "\e167";
}
.glyphicon-saved:before {
  content: "\e168";
}
.glyphicon-import:before {
  content: "\e169";
}
.glyphicon-export:before {
  content: "\e170";
}
.glyphicon-send:before {
  content: "\e171";
}
.glyphicon-floppy-disk:before {
  content: "\e172";
}
.glyphicon-floppy-saved:before {
  content: "\e173";
}
.glyphicon-floppy-remove:before {
  content: "\e174";
}
.glyphicon-floppy-save:before {
  content: "\e175";
}
.glyphicon-floppy-open:before {
  content: "\e176";
}
.glyphicon-credit-card:before {
  content: "\e177";
}
.glyphicon-transfer:before {
  content: "\e178";
}
.glyphicon-cutlery:before {
  content: "\e179";
}
.glyphicon-header:before {
  content: "\e180";
}
.glyphicon-compressed:before {
  content: "\e181";
}
.glyphicon-earphone:before {
  content: "\e182";
}
.glyphicon-phone-alt:before {
  content: "\e183";
}
.glyphicon-tower:before {
  content: "\e184";
}
.glyphicon-stats:before {
  content: "\e185";
}
.glyphicon-sd-video:before {
  content: "\e186";
}
.glyphicon-hd-video:before {
  content: "\e187";
}
.glyphicon-subtitles:before {
  content: "\e188";
}
.glyphicon-sound-stereo:before {
  content: "\e189";
}
.glyphicon-sound-dolby:before {
  content: "\e190";
}
.glyphicon-sound-5-1:before {
  content: "\e191";
}
.glyphicon-sound-6-1:before {
  content: "\e192";
}
.glyphicon-sound-7-1:before {
  content: "\e193";
}
.glyphicon-copyright-mark:before {
  content: "\e194";
}
.glyphicon-registration-mark:before {
  content: "\e195";
}
.glyphicon-cloud-download:before {
  content: "\e197";
}
.glyphicon-cloud-upload:before {
  content: "\e198";
}
.glyphicon-tree-conifer:before {
  content: "\e199";
}
.glyphicon-tree-deciduous:before {
  content: "\e200";
}
.glyphicon-cd:before {
  content: "\e201";
}
.glyphicon-save-file:before {
  content: "\e202";
}
.glyphicon-open-file:before {
  content: "\e203";
}
.glyphicon-level-up:before {
  content: "\e204";
}
.glyphicon-copy:before {
  content: "\e205";
}
.glyphicon-paste:before {
  content: "\e206";
}
.glyphicon-alert:before {
  content: "\e209";
}
.glyphicon-equalizer:before {
  content: "\e210";
}
.glyphicon-king:before {
  content: "\e211";
}
.glyphicon-queen:before {
  content: "\e212";
}
.glyphicon-pawn:before {
  content: "\e213";
}
.glyphicon-bishop:before {
  content: "\e214";
}
.glyphicon-knight:before {
  content: "\e215";
}
.glyphicon-baby-formula:before {
  content: "\e216";
}
.glyphicon-tent:before {
  content: "\26fa";
}
.glyphicon-blackboard:before {
  content: "\e218";
}
.glyphicon-bed:before {
  content: "\e219";
}
.glyphicon-apple:before {
  content: "\f8ff";
}
.glyphicon-erase:before {
  content: "\e221";
}
.glyphicon-hourglass:before {
  content: "\231b";
}
.glyphicon-lamp:before {
  content: "\e223";
}
.glyphicon-duplicate:before {
  content: "\e224";
}
.glyphicon-piggy-bank:before {
  content: "\e225";
}
.glyphicon-scissors:before {
  content: "\e226";
}
.glyphicon-bitcoin:before {
  content: "\e227";
}
.glyphicon-btc:before {
  content: "\e227";
}
.glyphicon-xbt:before {
  content: "\e227";
}
.glyphicon-yen:before {
  content: "\00a5";
}
.glyphicon-jpy:before {
  content: "\00a5";
}
.glyphicon-ruble:before {
  content: "\20bd";
}
.glyphicon-rub:before {
  content: "\20bd";
}
.glyphicon-scale:before {
  content: "\e230";
}
.glyphicon-ice-lolly:before {
  content: "\e231";
}
.glyphicon-ice-lolly-tasted:before {
  content: "\e232";
}
.glyphicon-education:before {
  content: "\e233";
}
.glyphicon-option-horizontal:before {
  content: "\e234";
}
.glyphicon-option-vertical:before {
  content: "\e235";
}
.glyphicon-menu-hamburger:before {
  content: "\e236";
}
.glyphicon-modal-window:before {
  content: "\e237";
}
.glyphicon-oil:before {
  content: "\e238";
}
.glyphicon-grain:before {
  content: "\e239";
}
.glyphicon-sunglasses:before {
  content: "\e240";
}
.glyphicon-text-size:before {
  content: "\e241";
}
.glyphicon-text-color:before {
  content: "\e242";
}
.glyphicon-text-background:before {
  content: "\e243";
}
.glyphicon-object-align-top:before {
  content: "\e244";
}
.glyphicon-object-align-bottom:before {
  content: "\e245";
}
.glyphicon-object-align-horizontal:before {
  content: "\e246";
}
.glyphicon-object-align-left:before {
  content: "\e247";
}
.glyphicon-object-align-vertical:before {
  content: "\e248";
}
.glyphicon-object-align-right:before {
  content: "\e249";
}
.glyphicon-triangle-right:before {
  content: "\e250";
}
.glyphicon-triangle-left:before {
  content: "\e251";
}
.glyphicon-triangle-bottom:before {
  content: "\e252";
}
.glyphicon-triangle-top:before {
  content: "\e253";
}
.glyphicon-console:before {
  content: "\e254";
}
.glyphicon-superscript:before {
  content: "\e255";
}
.glyphicon-subscript:before {
  content: "\e256";
}
.glyphicon-menu-left:before {
  content: "\e257";
}
.glyphicon-menu-right:before {
  content: "\e258";
}
.glyphicon-menu-down:before {
  content: "\e259";
}
.glyphicon-menu-up:before {
  content: "\e260";
}
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
html {
  font-size: 10px;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1.42857143;
  color: #000;
  background-color: #fff;
}
input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
a {
  color: #337ab7;
  text-decoration: none;
}
a:hover,
a:focus {
  color: #23527c;
  text-decoration: underline;
}
a:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
figure {
  margin: 0;
}
img {
  vertical-align: middle;
}
.img-responsive,
.thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  display: block;
  max-width: 100%;
  height: auto;
}
.img-rounded {
  border-radius: 3px;
}
.img-thumbnail {
  padding: 4px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  display: inline-block;
  max-width: 100%;
  height: auto;
}
.img-circle {
  border-radius: 50%;
}
hr {
  margin-top: 18px;
  margin-bottom: 18px;
  border: 0;
  border-top: 1px solid #eeeeee;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
[role="button"] {
  cursor: pointer;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: inherit;
  font-weight: 500;
  line-height: 1.1;
  color: inherit;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h3 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h3 .small,
.h4 .small,
.h5 .small,
.h6 .small {
  font-weight: normal;
  line-height: 1;
  color: #777777;
}
h1,
.h1,
h2,
.h2,
h3,
.h3 {
  margin-top: 18px;
  margin-bottom: 9px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h3 .small,
.h3 .small {
  font-size: 65%;
}
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 9px;
  margin-bottom: 9px;
}
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small,
h4 .small,
.h4 .small,
h5 .small,
.h5 .small,
h6 .small,
.h6 .small {
  font-size: 75%;
}
h1,
.h1 {
  font-size: 33px;
}
h2,
.h2 {
  font-size: 27px;
}
h3,
.h3 {
  font-size: 23px;
}
h4,
.h4 {
  font-size: 17px;
}
h5,
.h5 {
  font-size: 13px;
}
h6,
.h6 {
  font-size: 12px;
}
p {
  margin: 0 0 9px;
}
.lead {
  margin-bottom: 18px;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .lead {
    font-size: 19.5px;
  }
}
small,
.small {
  font-size: 92%;
}
mark,
.mark {
  background-color: #fcf8e3;
  padding: .2em;
}
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}
.text-center {
  text-align: center;
}
.text-justify {
  text-align: justify;
}
.text-nowrap {
  white-space: nowrap;
}
.text-lowercase {
  text-transform: lowercase;
}
.text-uppercase {
  text-transform: uppercase;
}
.text-capitalize {
  text-transform: capitalize;
}
.text-muted {
  color: #777777;
}
.text-primary {
  color: #337ab7;
}
a.text-primary:hover,
a.text-primary:focus {
  color: #286090;
}
.text-success {
  color: #3c763d;
}
a.text-success:hover,
a.text-success:focus {
  color: #2b542c;
}
.text-info {
  color: #31708f;
}
a.text-info:hover,
a.text-info:focus {
  color: #245269;
}
.text-warning {
  color: #8a6d3b;
}
a.text-warning:hover,
a.text-warning:focus {
  color: #66512c;
}
.text-danger {
  color: #a94442;
}
a.text-danger:hover,
a.text-danger:focus {
  color: #843534;
}
.bg-primary {
  color: #fff;
  background-color: #337ab7;
}
a.bg-primary:hover,
a.bg-primary:focus {
  background-color: #286090;
}
.bg-success {
  background-color: #dff0d8;
}
a.bg-success:hover,
a.bg-success:focus {
  background-color: #c1e2b3;
}
.bg-info {
  background-color: #d9edf7;
}
a.bg-info:hover,
a.bg-info:focus {
  background-color: #afd9ee;
}
.bg-warning {
  background-color: #fcf8e3;
}
a.bg-warning:hover,
a.bg-warning:focus {
  background-color: #f7ecb5;
}
.bg-danger {
  background-color: #f2dede;
}
a.bg-danger:hover,
a.bg-danger:focus {
  background-color: #e4b9b9;
}
.page-header {
  padding-bottom: 8px;
  margin: 36px 0 18px;
  border-bottom: 1px solid #eeeeee;
}
ul,
ol {
  margin-top: 0;
  margin-bottom: 9px;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin-bottom: 0;
}
.list-unstyled {
  padding-left: 0;
  list-style: none;
}
.list-inline {
  padding-left: 0;
  list-style: none;
  margin-left: -5px;
}
.list-inline > li {
  display: inline-block;
  padding-left: 5px;
  padding-right: 5px;
}
dl {
  margin-top: 0;
  margin-bottom: 18px;
}
dt,
dd {
  line-height: 1.42857143;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: 0;
}
@media (min-width: 541px) {
  .dl-horizontal dt {
    float: left;
    width: 160px;
    clear: left;
    text-align: right;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .dl-horizontal dd {
    margin-left: 180px;
  }
}
abbr[title],
abbr[data-original-title] {
  cursor: help;
  border-bottom: 1px dotted #777777;
}
.initialism {
  font-size: 90%;
  text-transform: uppercase;
}
blockquote {
  padding: 9px 18px;
  margin: 0 0 18px;
  font-size: inherit;
  border-left: 5px solid #eeeeee;
}
blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
  margin-bottom: 0;
}
blockquote footer,
blockquote small,
blockquote .small {
  display: block;
  font-size: 80%;
  line-height: 1.42857143;
  color: #777777;
}
blockquote footer:before,
blockquote small:before,
blockquote .small:before {
  content: '\2014 \00A0';
}
.blockquote-reverse,
blockquote.pull-right {
  padding-right: 15px;
  padding-left: 0;
  border-right: 5px solid #eeeeee;
  border-left: 0;
  text-align: right;
}
.blockquote-reverse footer:before,
blockquote.pull-right footer:before,
.blockquote-reverse small:before,
blockquote.pull-right small:before,
.blockquote-reverse .small:before,
blockquote.pull-right .small:before {
  content: '';
}
.blockquote-reverse footer:after,
blockquote.pull-right footer:after,
.blockquote-reverse small:after,
blockquote.pull-right small:after,
.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
  content: '\00A0 \2014';
}
address {
  margin-bottom: 18px;
  font-style: normal;
  line-height: 1.42857143;
}
code,
kbd,
pre,
samp {
  font-family: monospace;
}
code {
  padding: 2px 4px;
  font-size: 90%;
  color: #c7254e;
  background-color: #f9f2f4;
  border-radius: 2px;
}
kbd {
  padding: 2px 4px;
  font-size: 90%;
  color: #888;
  background-color: transparent;
  border-radius: 1px;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
kbd kbd {
  padding: 0;
  font-size: 100%;
  font-weight: bold;
  box-shadow: none;
}
pre {
  display: block;
  padding: 8.5px;
  margin: 0 0 9px;
  font-size: 12px;
  line-height: 1.42857143;
  word-break: break-all;
  word-wrap: break-word;
  color: #333333;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
  border-radius: 2px;
}
pre code {
  padding: 0;
  font-size: inherit;
  color: inherit;
  white-space: pre-wrap;
  background-color: transparent;
  border-radius: 0;
}
.pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
}
.container {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
@media (min-width: 768px) {
  .container {
    width: 768px;
  }
}
@media (min-width: 992px) {
  .container {
    width: 940px;
  }
}
@media (min-width: 1200px) {
  .container {
    width: 1140px;
  }
}
.container-fluid {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
.row {
  margin-left: 0px;
  margin-right: 0px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  position: relative;
  min-height: 1px;
  padding-left: 0px;
  padding-right: 0px;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  float: left;
}
.col-xs-12 {
  width: 100%;
}
.col-xs-11 {
  width: 91.66666667%;
}
.col-xs-10 {
  width: 83.33333333%;
}
.col-xs-9 {
  width: 75%;
}
.col-xs-8 {
  width: 66.66666667%;
}
.col-xs-7 {
  width: 58.33333333%;
}
.col-xs-6 {
  width: 50%;
}
.col-xs-5 {
  width: 41.66666667%;
}
.col-xs-4 {
  width: 33.33333333%;
}
.col-xs-3 {
  width: 25%;
}
.col-xs-2 {
  width: 16.66666667%;
}
.col-xs-1 {
  width: 8.33333333%;
}
.col-xs-pull-12 {
  right: 100%;
}
.col-xs-pull-11 {
  right: 91.66666667%;
}
.col-xs-pull-10 {
  right: 83.33333333%;
}
.col-xs-pull-9 {
  right: 75%;
}
.col-xs-pull-8 {
  right: 66.66666667%;
}
.col-xs-pull-7 {
  right: 58.33333333%;
}
.col-xs-pull-6 {
  right: 50%;
}
.col-xs-pull-5 {
  right: 41.66666667%;
}
.col-xs-pull-4 {
  right: 33.33333333%;
}
.col-xs-pull-3 {
  right: 25%;
}
.col-xs-pull-2 {
  right: 16.66666667%;
}
.col-xs-pull-1 {
  right: 8.33333333%;
}
.col-xs-pull-0 {
  right: auto;
}
.col-xs-push-12 {
  left: 100%;
}
.col-xs-push-11 {
  left: 91.66666667%;
}
.col-xs-push-10 {
  left: 83.33333333%;
}
.col-xs-push-9 {
  left: 75%;
}
.col-xs-push-8 {
  left: 66.66666667%;
}
.col-xs-push-7 {
  left: 58.33333333%;
}
.col-xs-push-6 {
  left: 50%;
}
.col-xs-push-5 {
  left: 41.66666667%;
}
.col-xs-push-4 {
  left: 33.33333333%;
}
.col-xs-push-3 {
  left: 25%;
}
.col-xs-push-2 {
  left: 16.66666667%;
}
.col-xs-push-1 {
  left: 8.33333333%;
}
.col-xs-push-0 {
  left: auto;
}
.col-xs-offset-12 {
  margin-left: 100%;
}
.col-xs-offset-11 {
  margin-left: 91.66666667%;
}
.col-xs-offset-10 {
  margin-left: 83.33333333%;
}
.col-xs-offset-9 {
  margin-left: 75%;
}
.col-xs-offset-8 {
  margin-left: 66.66666667%;
}
.col-xs-offset-7 {
  margin-left: 58.33333333%;
}
.col-xs-offset-6 {
  margin-left: 50%;
}
.col-xs-offset-5 {
  margin-left: 41.66666667%;
}
.col-xs-offset-4 {
  margin-left: 33.33333333%;
}
.col-xs-offset-3 {
  margin-left: 25%;
}
.col-xs-offset-2 {
  margin-left: 16.66666667%;
}
.col-xs-offset-1 {
  margin-left: 8.33333333%;
}
.col-xs-offset-0 {
  margin-left: 0%;
}
@media (min-width: 768px) {
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
    float: left;
  }
  .col-sm-12 {
    width: 100%;
  }
  .col-sm-11 {
    width: 91.66666667%;
  }
  .col-sm-10 {
    width: 83.33333333%;
  }
  .col-sm-9 {
    width: 75%;
  }
  .col-sm-8 {
    width: 66.66666667%;
  }
  .col-sm-7 {
    width: 58.33333333%;
  }
  .col-sm-6 {
    width: 50%;
  }
  .col-sm-5 {
    width: 41.66666667%;
  }
  .col-sm-4 {
    width: 33.33333333%;
  }
  .col-sm-3 {
    width: 25%;
  }
  .col-sm-2 {
    width: 16.66666667%;
  }
  .col-sm-1 {
    width: 8.33333333%;
  }
  .col-sm-pull-12 {
    right: 100%;
  }
  .col-sm-pull-11 {
    right: 91.66666667%;
  }
  .col-sm-pull-10 {
    right: 83.33333333%;
  }
  .col-sm-pull-9 {
    right: 75%;
  }
  .col-sm-pull-8 {
    right: 66.66666667%;
  }
  .col-sm-pull-7 {
    right: 58.33333333%;
  }
  .col-sm-pull-6 {
    right: 50%;
  }
  .col-sm-pull-5 {
    right: 41.66666667%;
  }
  .col-sm-pull-4 {
    right: 33.33333333%;
  }
  .col-sm-pull-3 {
    right: 25%;
  }
  .col-sm-pull-2 {
    right: 16.66666667%;
  }
  .col-sm-pull-1 {
    right: 8.33333333%;
  }
  .col-sm-pull-0 {
    right: auto;
  }
  .col-sm-push-12 {
    left: 100%;
  }
  .col-sm-push-11 {
    left: 91.66666667%;
  }
  .col-sm-push-10 {
    left: 83.33333333%;
  }
  .col-sm-push-9 {
    left: 75%;
  }
  .col-sm-push-8 {
    left: 66.66666667%;
  }
  .col-sm-push-7 {
    left: 58.33333333%;
  }
  .col-sm-push-6 {
    left: 50%;
  }
  .col-sm-push-5 {
    left: 41.66666667%;
  }
  .col-sm-push-4 {
    left: 33.33333333%;
  }
  .col-sm-push-3 {
    left: 25%;
  }
  .col-sm-push-2 {
    left: 16.66666667%;
  }
  .col-sm-push-1 {
    left: 8.33333333%;
  }
  .col-sm-push-0 {
    left: auto;
  }
  .col-sm-offset-12 {
    margin-left: 100%;
  }
  .col-sm-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-sm-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-sm-offset-9 {
    margin-left: 75%;
  }
  .col-sm-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-sm-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-sm-offset-6 {
    margin-left: 50%;
  }
  .col-sm-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-sm-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-sm-offset-3 {
    margin-left: 25%;
  }
  .col-sm-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-sm-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-sm-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 992px) {
  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
    float: left;
  }
  .col-md-12 {
    width: 100%;
  }
  .col-md-11 {
    width: 91.66666667%;
  }
  .col-md-10 {
    width: 83.33333333%;
  }
  .col-md-9 {
    width: 75%;
  }
  .col-md-8 {
    width: 66.66666667%;
  }
  .col-md-7 {
    width: 58.33333333%;
  }
  .col-md-6 {
    width: 50%;
  }
  .col-md-5 {
    width: 41.66666667%;
  }
  .col-md-4 {
    width: 33.33333333%;
  }
  .col-md-3 {
    width: 25%;
  }
  .col-md-2 {
    width: 16.66666667%;
  }
  .col-md-1 {
    width: 8.33333333%;
  }
  .col-md-pull-12 {
    right: 100%;
  }
  .col-md-pull-11 {
    right: 91.66666667%;
  }
  .col-md-pull-10 {
    right: 83.33333333%;
  }
  .col-md-pull-9 {
    right: 75%;
  }
  .col-md-pull-8 {
    right: 66.66666667%;
  }
  .col-md-pull-7 {
    right: 58.33333333%;
  }
  .col-md-pull-6 {
    right: 50%;
  }
  .col-md-pull-5 {
    right: 41.66666667%;
  }
  .col-md-pull-4 {
    right: 33.33333333%;
  }
  .col-md-pull-3 {
    right: 25%;
  }
  .col-md-pull-2 {
    right: 16.66666667%;
  }
  .col-md-pull-1 {
    right: 8.33333333%;
  }
  .col-md-pull-0 {
    right: auto;
  }
  .col-md-push-12 {
    left: 100%;
  }
  .col-md-push-11 {
    left: 91.66666667%;
  }
  .col-md-push-10 {
    left: 83.33333333%;
  }
  .col-md-push-9 {
    left: 75%;
  }
  .col-md-push-8 {
    left: 66.66666667%;
  }
  .col-md-push-7 {
    left: 58.33333333%;
  }
  .col-md-push-6 {
    left: 50%;
  }
  .col-md-push-5 {
    left: 41.66666667%;
  }
  .col-md-push-4 {
    left: 33.33333333%;
  }
  .col-md-push-3 {
    left: 25%;
  }
  .col-md-push-2 {
    left: 16.66666667%;
  }
  .col-md-push-1 {
    left: 8.33333333%;
  }
  .col-md-push-0 {
    left: auto;
  }
  .col-md-offset-12 {
    margin-left: 100%;
  }
  .col-md-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-md-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-md-offset-9 {
    margin-left: 75%;
  }
  .col-md-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-md-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-md-offset-6 {
    margin-left: 50%;
  }
  .col-md-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-md-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-md-offset-3 {
    margin-left: 25%;
  }
  .col-md-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-md-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-md-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 1200px) {
  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
    float: left;
  }
  .col-lg-12 {
    width: 100%;
  }
  .col-lg-11 {
    width: 91.66666667%;
  }
  .col-lg-10 {
    width: 83.33333333%;
  }
  .col-lg-9 {
    width: 75%;
  }
  .col-lg-8 {
    width: 66.66666667%;
  }
  .col-lg-7 {
    width: 58.33333333%;
  }
  .col-lg-6 {
    width: 50%;
  }
  .col-lg-5 {
    width: 41.66666667%;
  }
  .col-lg-4 {
    width: 33.33333333%;
  }
  .col-lg-3 {
    width: 25%;
  }
  .col-lg-2 {
    width: 16.66666667%;
  }
  .col-lg-1 {
    width: 8.33333333%;
  }
  .col-lg-pull-12 {
    right: 100%;
  }
  .col-lg-pull-11 {
    right: 91.66666667%;
  }
  .col-lg-pull-10 {
    right: 83.33333333%;
  }
  .col-lg-pull-9 {
    right: 75%;
  }
  .col-lg-pull-8 {
    right: 66.66666667%;
  }
  .col-lg-pull-7 {
    right: 58.33333333%;
  }
  .col-lg-pull-6 {
    right: 50%;
  }
  .col-lg-pull-5 {
    right: 41.66666667%;
  }
  .col-lg-pull-4 {
    right: 33.33333333%;
  }
  .col-lg-pull-3 {
    right: 25%;
  }
  .col-lg-pull-2 {
    right: 16.66666667%;
  }
  .col-lg-pull-1 {
    right: 8.33333333%;
  }
  .col-lg-pull-0 {
    right: auto;
  }
  .col-lg-push-12 {
    left: 100%;
  }
  .col-lg-push-11 {
    left: 91.66666667%;
  }
  .col-lg-push-10 {
    left: 83.33333333%;
  }
  .col-lg-push-9 {
    left: 75%;
  }
  .col-lg-push-8 {
    left: 66.66666667%;
  }
  .col-lg-push-7 {
    left: 58.33333333%;
  }
  .col-lg-push-6 {
    left: 50%;
  }
  .col-lg-push-5 {
    left: 41.66666667%;
  }
  .col-lg-push-4 {
    left: 33.33333333%;
  }
  .col-lg-push-3 {
    left: 25%;
  }
  .col-lg-push-2 {
    left: 16.66666667%;
  }
  .col-lg-push-1 {
    left: 8.33333333%;
  }
  .col-lg-push-0 {
    left: auto;
  }
  .col-lg-offset-12 {
    margin-left: 100%;
  }
  .col-lg-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-lg-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-lg-offset-9 {
    margin-left: 75%;
  }
  .col-lg-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-lg-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-lg-offset-6 {
    margin-left: 50%;
  }
  .col-lg-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-lg-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-lg-offset-3 {
    margin-left: 25%;
  }
  .col-lg-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-lg-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-lg-offset-0 {
    margin-left: 0%;
  }
}
table {
  background-color: transparent;
}
caption {
  padding-top: 8px;
  padding-bottom: 8px;
  color: #777777;
  text-align: left;
}
th {
  text-align: left;
}
.table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 18px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  border-top: 1px solid #ddd;
}
.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #ddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
  border-top: 0;
}
.table > tbody + tbody {
  border-top: 2px solid #ddd;
}
.table .table {
  background-color: #fff;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
  padding: 5px;
}
.table-bordered {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
  border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
  background-color: #f5f5f5;
}
table col[class*="col-"] {
  position: static;
  float: none;
  display: table-column;
}
table td[class*="col-"],
table th[class*="col-"] {
  position: static;
  float: none;
  display: table-cell;
}
.table > thead > tr > td.active,
.table > tbody > tr > td.active,
.table > tfoot > tr > td.active,
.table > thead > tr > th.active,
.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
  background-color: #f5f5f5;
}
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
  background-color: #e8e8e8;
}
.table > thead > tr > td.success,
.table > tbody > tr > td.success,
.table > tfoot > tr > td.success,
.table > thead > tr > th.success,
.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
.table > thead > tr.success > td,
.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
  background-color: #dff0d8;
}
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
  background-color: #d0e9c6;
}
.table > thead > tr > td.info,
.table > tbody > tr > td.info,
.table > tfoot > tr > td.info,
.table > thead > tr > th.info,
.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
.table > thead > tr.info > td,
.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
  background-color: #d9edf7;
}
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
  background-color: #c4e3f3;
}
.table > thead > tr > td.warning,
.table > tbody > tr > td.warning,
.table > tfoot > tr > td.warning,
.table > thead > tr > th.warning,
.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
.table > thead > tr.warning > td,
.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
  background-color: #fcf8e3;
}
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
  background-color: #faf2cc;
}
.table > thead > tr > td.danger,
.table > tbody > tr > td.danger,
.table > tfoot > tr > td.danger,
.table > thead > tr > th.danger,
.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
.table > thead > tr.danger > td,
.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
  background-color: #f2dede;
}
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
  background-color: #ebcccc;
}
.table-responsive {
  overflow-x: auto;
  min-height: 0.01%;
}
@media screen and (max-width: 767px) {
  .table-responsive {
    width: 100%;
    margin-bottom: 13.5px;
    overflow-y: hidden;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    border: 1px solid #ddd;
  }
  .table-responsive > .table {
    margin-bottom: 0;
  }
  .table-responsive > .table > thead > tr > th,
  .table-responsive > .table > tbody > tr > th,
  .table-responsive > .table > tfoot > tr > th,
  .table-responsive > .table > thead > tr > td,
  .table-responsive > .table > tbody > tr > td,
  .table-responsive > .table > tfoot > tr > td {
    white-space: nowrap;
  }
  .table-responsive > .table-bordered {
    border: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:first-child,
  .table-responsive > .table-bordered > tbody > tr > th:first-child,
  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  .table-responsive > .table-bordered > thead > tr > td:first-child,
  .table-responsive > .table-bordered > tbody > tr > td:first-child,
  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
    border-left: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:last-child,
  .table-responsive > .table-bordered > tbody > tr > th:last-child,
  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  .table-responsive > .table-bordered > thead > tr > td:last-child,
  .table-responsive > .table-bordered > tbody > tr > td:last-child,
  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
    border-right: 0;
  }
  .table-responsive > .table-bordered > tbody > tr:last-child > th,
  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
  .table-responsive > .table-bordered > tbody > tr:last-child > td,
  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
    border-bottom: 0;
  }
}
fieldset {
  padding: 0;
  margin: 0;
  border: 0;
  min-width: 0;
}
legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 18px;
  font-size: 19.5px;
  line-height: inherit;
  color: #333333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
}
label {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 5px;
  font-weight: bold;
}
input[type="search"] {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
input[type="radio"],
input[type="checkbox"] {
  margin: 4px 0 0;
  margin-top: 1px \9;
  line-height: normal;
}
input[type="file"] {
  display: block;
}
input[type="range"] {
  display: block;
  width: 100%;
}
select[multiple],
select[size] {
  height: auto;
}
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
output {
  display: block;
  padding-top: 7px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
}
.form-control {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.form-control:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.form-control:-ms-input-placeholder {
  color: #999;
}
.form-control::-webkit-input-placeholder {
  color: #999;
}
.form-control::-ms-expand {
  border: 0;
  background-color: transparent;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
  background-color: #eeeeee;
  opacity: 1;
}
.form-control[disabled],
fieldset[disabled] .form-control {
  cursor: not-allowed;
}
textarea.form-control {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: none;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  input[type="date"].form-control,
  input[type="time"].form-control,
  input[type="datetime-local"].form-control,
  input[type="month"].form-control {
    line-height: 32px;
  }
  input[type="date"].input-sm,
  input[type="time"].input-sm,
  input[type="datetime-local"].input-sm,
  input[type="month"].input-sm,
  .input-group-sm input[type="date"],
  .input-group-sm input[type="time"],
  .input-group-sm input[type="datetime-local"],
  .input-group-sm input[type="month"] {
    line-height: 30px;
  }
  input[type="date"].input-lg,
  input[type="time"].input-lg,
  input[type="datetime-local"].input-lg,
  input[type="month"].input-lg,
  .input-group-lg input[type="date"],
  .input-group-lg input[type="time"],
  .input-group-lg input[type="datetime-local"],
  .input-group-lg input[type="month"] {
    line-height: 45px;
  }
}
.form-group {
  margin-bottom: 15px;
}
.radio,
.checkbox {
  position: relative;
  display: block;
  margin-top: 10px;
  margin-bottom: 10px;
}
.radio label,
.checkbox label {
  min-height: 18px;
  padding-left: 20px;
  margin-bottom: 0;
  font-weight: normal;
  cursor: pointer;
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
  position: absolute;
  margin-left: -20px;
  margin-top: 4px \9;
}
.radio + .radio,
.checkbox + .checkbox {
  margin-top: -5px;
}
.radio-inline,
.checkbox-inline {
  position: relative;
  display: inline-block;
  padding-left: 20px;
  margin-bottom: 0;
  vertical-align: middle;
  font-weight: normal;
  cursor: pointer;
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
  margin-top: 0;
  margin-left: 10px;
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"].disabled,
input[type="checkbox"].disabled,
fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"] {
  cursor: not-allowed;
}
.radio-inline.disabled,
.checkbox-inline.disabled,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox-inline {
  cursor: not-allowed;
}
.radio.disabled label,
.checkbox.disabled label,
fieldset[disabled] .radio label,
fieldset[disabled] .checkbox label {
  cursor: not-allowed;
}
.form-control-static {
  padding-top: 7px;
  padding-bottom: 7px;
  margin-bottom: 0;
  min-height: 31px;
}
.form-control-static.input-lg,
.form-control-static.input-sm {
  padding-left: 0;
  padding-right: 0;
}
.input-sm {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-sm {
  height: 30px;
  line-height: 30px;
}
textarea.input-sm,
select[multiple].input-sm {
  height: auto;
}
.form-group-sm .form-control {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.form-group-sm select.form-control {
  height: 30px;
  line-height: 30px;
}
.form-group-sm textarea.form-control,
.form-group-sm select[multiple].form-control {
  height: auto;
}
.form-group-sm .form-control-static {
  height: 30px;
  min-height: 30px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.input-lg {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-lg {
  height: 45px;
  line-height: 45px;
}
textarea.input-lg,
select[multiple].input-lg {
  height: auto;
}
.form-group-lg .form-control {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.form-group-lg select.form-control {
  height: 45px;
  line-height: 45px;
}
.form-group-lg textarea.form-control,
.form-group-lg select[multiple].form-control {
  height: auto;
}
.form-group-lg .form-control-static {
  height: 45px;
  min-height: 35px;
  padding: 11px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.has-feedback {
  position: relative;
}
.has-feedback .form-control {
  padding-right: 40px;
}
.form-control-feedback {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: block;
  width: 32px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  pointer-events: none;
}
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
  width: 45px;
  height: 45px;
  line-height: 45px;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
  width: 30px;
  height: 30px;
  line-height: 30px;
}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline,
.has-success.radio label,
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
  color: #3c763d;
}
.has-success .form-control {
  border-color: #3c763d;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-success .form-control:focus {
  border-color: #2b542c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
}
.has-success .input-group-addon {
  color: #3c763d;
  border-color: #3c763d;
  background-color: #dff0d8;
}
.has-success .form-control-feedback {
  color: #3c763d;
}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline,
.has-warning.radio label,
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
  color: #8a6d3b;
}
.has-warning .form-control {
  border-color: #8a6d3b;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-warning .form-control:focus {
  border-color: #66512c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
}
.has-warning .input-group-addon {
  color: #8a6d3b;
  border-color: #8a6d3b;
  background-color: #fcf8e3;
}
.has-warning .form-control-feedback {
  color: #8a6d3b;
}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
  color: #a94442;
}
.has-error .form-control {
  border-color: #a94442;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-error .form-control:focus {
  border-color: #843534;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}
.has-error .input-group-addon {
  color: #a94442;
  border-color: #a94442;
  background-color: #f2dede;
}
.has-error .form-control-feedback {
  color: #a94442;
}
.has-feedback label ~ .form-control-feedback {
  top: 23px;
}
.has-feedback label.sr-only ~ .form-control-feedback {
  top: 0;
}
.help-block {
  display: block;
  margin-top: 5px;
  margin-bottom: 10px;
  color: #404040;
}
@media (min-width: 768px) {
  .form-inline .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-control-static {
    display: inline-block;
  }
  .form-inline .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .form-inline .input-group .input-group-addon,
  .form-inline .input-group .input-group-btn,
  .form-inline .input-group .form-control {
    width: auto;
  }
  .form-inline .input-group > .form-control {
    width: 100%;
  }
  .form-inline .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio,
  .form-inline .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio label,
  .form-inline .checkbox label {
    padding-left: 0;
  }
  .form-inline .radio input[type="radio"],
  .form-inline .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .form-inline .has-feedback .form-control-feedback {
    top: 0;
  }
}
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 7px;
}
.form-horizontal .radio,
.form-horizontal .checkbox {
  min-height: 25px;
}
.form-horizontal .form-group {
  margin-left: 0px;
  margin-right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .control-label {
    text-align: right;
    margin-bottom: 0;
    padding-top: 7px;
  }
}
.form-horizontal .has-feedback .form-control-feedback {
  right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .form-group-lg .control-label {
    padding-top: 11px;
    font-size: 17px;
  }
}
@media (min-width: 768px) {
  .form-horizontal .form-group-sm .control-label {
    padding-top: 6px;
    font-size: 12px;
  }
}
.btn {
  display: inline-block;
  margin-bottom: 0;
  font-weight: normal;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  border-radius: 2px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.btn:hover,
.btn:focus,
.btn.focus {
  color: #333;
  text-decoration: none;
}
.btn:active,
.btn.active {
  outline: 0;
  background-image: none;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
  cursor: not-allowed;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
  box-shadow: none;
}
a.btn.disabled,
fieldset[disabled] a.btn {
  pointer-events: none;
}
.btn-default {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.btn-default:focus,
.btn-default.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.btn-default:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active:hover,
.btn-default.active:hover,
.open > .dropdown-toggle.btn-default:hover,
.btn-default:active:focus,
.btn-default.active:focus,
.open > .dropdown-toggle.btn-default:focus,
.btn-default:active.focus,
.btn-default.active.focus,
.open > .dropdown-toggle.btn-default.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  background-image: none;
}
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus {
  background-color: #fff;
  border-color: #ccc;
}
.btn-default .badge {
  color: #fff;
  background-color: #333;
}
.btn-primary {
  color: #fff;
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: #286090;
  border-color: #122b40;
}
.btn-primary:hover {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
  color: #fff;
  background-color: #204d74;
  border-color: #122b40;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  background-image: none;
}
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus {
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary .badge {
  color: #337ab7;
  background-color: #fff;
}
.btn-success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success:focus,
.btn-success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.btn-success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active:hover,
.btn-success.active:hover,
.open > .dropdown-toggle.btn-success:hover,
.btn-success:active:focus,
.btn-success.active:focus,
.open > .dropdown-toggle.btn-success:focus,
.btn-success:active.focus,
.btn-success.active.focus,
.open > .dropdown-toggle.btn-success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  background-image: none;
}
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.btn-info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info:focus,
.btn-info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.btn-info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active:hover,
.btn-info.active:hover,
.open > .dropdown-toggle.btn-info:hover,
.btn-info:active:focus,
.btn-info.active:focus,
.open > .dropdown-toggle.btn-info:focus,
.btn-info:active.focus,
.btn-info.active.focus,
.open > .dropdown-toggle.btn-info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  background-image: none;
}
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.btn-warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning:focus,
.btn-warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.btn-warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active:hover,
.btn-warning.active:hover,
.open > .dropdown-toggle.btn-warning:hover,
.btn-warning:active:focus,
.btn-warning.active:focus,
.open > .dropdown-toggle.btn-warning:focus,
.btn-warning:active.focus,
.btn-warning.active.focus,
.open > .dropdown-toggle.btn-warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  background-image: none;
}
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.btn-danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger:focus,
.btn-danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.btn-danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active:hover,
.btn-danger.active:hover,
.open > .dropdown-toggle.btn-danger:hover,
.btn-danger:active:focus,
.btn-danger.active:focus,
.open > .dropdown-toggle.btn-danger:focus,
.btn-danger:active.focus,
.btn-danger.active.focus,
.open > .dropdown-toggle.btn-danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  background-image: none;
}
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger .badge {
  color: #d9534f;
  background-color: #fff;
}
.btn-link {
  color: #337ab7;
  font-weight: normal;
  border-radius: 0;
}
.btn-link,
.btn-link:active,
.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
  background-color: transparent;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
  border-color: transparent;
}
.btn-link:hover,
.btn-link:focus {
  color: #23527c;
  text-decoration: underline;
  background-color: transparent;
}
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
  color: #777777;
  text-decoration: none;
}
.btn-lg,
.btn-group-lg > .btn {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.btn-sm,
.btn-group-sm > .btn {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-xs,
.btn-group-xs > .btn {
  padding: 1px 5px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-block {
  display: block;
  width: 100%;
}
.btn-block + .btn-block {
  margin-top: 5px;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
  width: 100%;
}
.fade {
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  -o-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear;
}
.fade.in {
  opacity: 1;
}
.collapse {
  display: none;
}
.collapse.in {
  display: block;
}
tr.collapse.in {
  display: table-row;
}
tbody.collapse.in {
  display: table-row-group;
}
.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition-property: height, visibility;
  transition-property: height, visibility;
  -webkit-transition-duration: 0.35s;
  transition-duration: 0.35s;
  -webkit-transition-timing-function: ease;
  transition-timing-function: ease;
}
.caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-top: 4px dashed;
  border-top: 4px solid \9;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}
.dropup,
.dropdown {
  position: relative;
}
.dropdown-toggle:focus {
  outline: 0;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 0 0;
  list-style: none;
  font-size: 13px;
  text-align: left;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 2px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  background-clip: padding-box;
}
.dropdown-menu.pull-right {
  right: 0;
  left: auto;
}
.dropdown-menu .divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.dropdown-menu > li > a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 1.42857143;
  color: #333333;
  white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  text-decoration: none;
  color: #262626;
  background-color: #f5f5f5;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  color: #fff;
  text-decoration: none;
  outline: 0;
  background-color: #337ab7;
}
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  color: #777777;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  text-decoration: none;
  background-color: transparent;
  background-image: none;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  cursor: not-allowed;
}
.open > .dropdown-menu {
  display: block;
}
.open > a {
  outline: 0;
}
.dropdown-menu-right {
  left: auto;
  right: 0;
}
.dropdown-menu-left {
  left: 0;
  right: auto;
}
.dropdown-header {
  display: block;
  padding: 3px 20px;
  font-size: 12px;
  line-height: 1.42857143;
  color: #777777;
  white-space: nowrap;
}
.dropdown-backdrop {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  z-index: 990;
}
.pull-right > .dropdown-menu {
  right: 0;
  left: auto;
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
  border-top: 0;
  border-bottom: 4px dashed;
  border-bottom: 4px solid \9;
  content: "";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 2px;
}
@media (min-width: 541px) {
  .navbar-right .dropdown-menu {
    left: auto;
    right: 0;
  }
  .navbar-right .dropdown-menu-left {
    left: 0;
    right: auto;
  }
}
.btn-group,
.btn-group-vertical {
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
  position: relative;
  float: left;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
  z-index: 2;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
  margin-left: -1px;
}
.btn-toolbar {
  margin-left: -5px;
}
.btn-toolbar .btn,
.btn-toolbar .btn-group,
.btn-toolbar .input-group {
  float: left;
}
.btn-toolbar > .btn,
.btn-toolbar > .btn-group,
.btn-toolbar > .input-group {
  margin-left: 5px;
}
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
  border-radius: 0;
}
.btn-group > .btn:first-child {
  margin-left: 0;
}
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group > .btn-group {
  float: left;
}
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
  outline: 0;
}
.btn-group > .btn + .dropdown-toggle {
  padding-left: 8px;
  padding-right: 8px;
}
.btn-group > .btn-lg + .dropdown-toggle {
  padding-left: 12px;
  padding-right: 12px;
}
.btn-group.open .dropdown-toggle {
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn-group.open .dropdown-toggle.btn-link {
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn .caret {
  margin-left: 0;
}
.btn-lg .caret {
  border-width: 5px 5px 0;
  border-bottom-width: 0;
}
.dropup .btn-lg .caret {
  border-width: 0 5px 5px;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group,
.btn-group-vertical > .btn-group > .btn {
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
}
.btn-group-vertical > .btn-group > .btn {
  float: none;
}
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group {
  margin-top: -1px;
  margin-left: 0;
}
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.btn-group-vertical > .btn:first-child:not(:last-child) {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:last-child:not(:first-child) {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.btn-group-justified {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
}
.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
  float: none;
  display: table-cell;
  width: 1%;
}
.btn-group-justified > .btn-group .btn {
  width: 100%;
}
.btn-group-justified > .btn-group .dropdown-menu {
  left: auto;
}
[data-toggle="buttons"] > .btn input[type="radio"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
  position: absolute;
  clip: rect(0, 0, 0, 0);
  pointer-events: none;
}
.input-group {
  position: relative;
  display: table;
  border-collapse: separate;
}
.input-group[class*="col-"] {
  float: none;
  padding-left: 0;
  padding-right: 0;
}
.input-group .form-control {
  position: relative;
  z-index: 2;
  float: left;
  width: 100%;
  margin-bottom: 0;
}
.input-group .form-control:focus {
  z-index: 3;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  line-height: 45px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
textarea.input-group-lg > .input-group-btn > .btn,
select[multiple].input-group-lg > .form-control,
select[multiple].input-group-lg > .input-group-addon,
select[multiple].input-group-lg > .input-group-btn > .btn {
  height: auto;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  line-height: 30px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
textarea.input-group-sm > .input-group-btn > .btn,
select[multiple].input-group-sm > .form-control,
select[multiple].input-group-sm > .input-group-addon,
select[multiple].input-group-sm > .input-group-btn > .btn {
  height: auto;
}
.input-group-addon,
.input-group-btn,
.input-group .form-control {
  display: table-cell;
}
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.input-group-addon,
.input-group-btn {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
}
.input-group-addon {
  padding: 6px 12px;
  font-size: 13px;
  font-weight: normal;
  line-height: 1;
  color: #555555;
  text-align: center;
  background-color: #eeeeee;
  border: 1px solid #ccc;
  border-radius: 2px;
}
.input-group-addon.input-sm {
  padding: 5px 10px;
  font-size: 12px;
  border-radius: 1px;
}
.input-group-addon.input-lg {
  padding: 10px 16px;
  font-size: 17px;
  border-radius: 3px;
}
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
  margin-top: 0;
}
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.input-group-addon:first-child {
  border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.input-group-addon:last-child {
  border-left: 0;
}
.input-group-btn {
  position: relative;
  font-size: 0;
  white-space: nowrap;
}
.input-group-btn > .btn {
  position: relative;
}
.input-group-btn > .btn + .btn {
  margin-left: -1px;
}
.input-group-btn > .btn:hover,
.input-group-btn > .btn:focus,
.input-group-btn > .btn:active {
  z-index: 2;
}
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group {
  margin-right: -1px;
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group {
  z-index: 2;
  margin-left: -1px;
}
.nav {
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
}
.nav > li {
  position: relative;
  display: block;
}
.nav > li > a {
  position: relative;
  display: block;
  padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.nav > li.disabled > a {
  color: #777777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
  color: #777777;
  text-decoration: none;
  background-color: transparent;
  cursor: not-allowed;
}
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
  background-color: #eeeeee;
  border-color: #337ab7;
}
.nav .nav-divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.nav > li > a > img {
  max-width: none;
}
.nav-tabs {
  border-bottom: 1px solid #ddd;
}
.nav-tabs > li {
  float: left;
  margin-bottom: -1px;
}
.nav-tabs > li > a {
  margin-right: 2px;
  line-height: 1.42857143;
  border: 1px solid transparent;
  border-radius: 2px 2px 0 0;
}
.nav-tabs > li > a:hover {
  border-color: #eeeeee #eeeeee #ddd;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: #555555;
  background-color: #fff;
  border: 1px solid #ddd;
  border-bottom-color: transparent;
  cursor: default;
}
.nav-tabs.nav-justified {
  width: 100%;
  border-bottom: 0;
}
.nav-tabs.nav-justified > li {
  float: none;
}
.nav-tabs.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-tabs.nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs.nav-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs.nav-justified > .active > a,
  .nav-tabs.nav-justified > .active > a:hover,
  .nav-tabs.nav-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.nav-pills > li {
  float: left;
}
.nav-pills > li > a {
  border-radius: 2px;
}
.nav-pills > li + li {
  margin-left: 2px;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
  color: #fff;
  background-color: #337ab7;
}
.nav-stacked > li {
  float: none;
}
.nav-stacked > li + li {
  margin-top: 2px;
  margin-left: 0;
}
.nav-justified {
  width: 100%;
}
.nav-justified > li {
  float: none;
}
.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs-justified {
  border-bottom: 0;
}
.nav-tabs-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs-justified > .active > a,
  .nav-tabs-justified > .active > a:hover,
  .nav-tabs-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.tab-content > .tab-pane {
  display: none;
}
.tab-content > .active {
  display: block;
}
.nav-tabs .dropdown-menu {
  margin-top: -1px;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar {
  position: relative;
  min-height: 30px;
  margin-bottom: 18px;
  border: 1px solid transparent;
}
@media (min-width: 541px) {
  .navbar {
    border-radius: 2px;
  }
}
@media (min-width: 541px) {
  .navbar-header {
    float: left;
  }
}
.navbar-collapse {
  overflow-x: visible;
  padding-right: 0px;
  padding-left: 0px;
  border-top: 1px solid transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  -webkit-overflow-scrolling: touch;
}
.navbar-collapse.in {
  overflow-y: auto;
}
@media (min-width: 541px) {
  .navbar-collapse {
    width: auto;
    border-top: 0;
    box-shadow: none;
  }
  .navbar-collapse.collapse {
    display: block !important;
    height: auto !important;
    padding-bottom: 0;
    overflow: visible !important;
  }
  .navbar-collapse.in {
    overflow-y: visible;
  }
  .navbar-fixed-top .navbar-collapse,
  .navbar-static-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    padding-left: 0;
    padding-right: 0;
  }
}
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
  max-height: 340px;
}
@media (max-device-width: 540px) and (orientation: landscape) {
  .navbar-fixed-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    max-height: 200px;
  }
}
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
  margin-right: 0px;
  margin-left: 0px;
}
@media (min-width: 541px) {
  .container > .navbar-header,
  .container-fluid > .navbar-header,
  .container > .navbar-collapse,
  .container-fluid > .navbar-collapse {
    margin-right: 0;
    margin-left: 0;
  }
}
.navbar-static-top {
  z-index: 1000;
  border-width: 0 0 1px;
}
@media (min-width: 541px) {
  .navbar-static-top {
    border-radius: 0;
  }
}
.navbar-fixed-top,
.navbar-fixed-bottom {
  position: fixed;
  right: 0;
  left: 0;
  z-index: 1030;
}
@media (min-width: 541px) {
  .navbar-fixed-top,
  .navbar-fixed-bottom {
    border-radius: 0;
  }
}
.navbar-fixed-top {
  top: 0;
  border-width: 0 0 1px;
}
.navbar-fixed-bottom {
  bottom: 0;
  margin-bottom: 0;
  border-width: 1px 0 0;
}
.navbar-brand {
  float: left;
  padding: 6px 0px;
  font-size: 17px;
  line-height: 18px;
  height: 30px;
}
.navbar-brand:hover,
.navbar-brand:focus {
  text-decoration: none;
}
.navbar-brand > img {
  display: block;
}
@media (min-width: 541px) {
  .navbar > .container .navbar-brand,
  .navbar > .container-fluid .navbar-brand {
    margin-left: 0px;
  }
}
.navbar-toggle {
  position: relative;
  float: right;
  margin-right: 0px;
  padding: 9px 10px;
  margin-top: -2px;
  margin-bottom: -2px;
  background-color: transparent;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 2px;
}
.navbar-toggle:focus {
  outline: 0;
}
.navbar-toggle .icon-bar {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 1px;
}
.navbar-toggle .icon-bar + .icon-bar {
  margin-top: 4px;
}
@media (min-width: 541px) {
  .navbar-toggle {
    display: none;
  }
}
.navbar-nav {
  margin: 3px 0px;
}
.navbar-nav > li > a {
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 18px;
}
@media (max-width: 540px) {
  .navbar-nav .open .dropdown-menu {
    position: static;
    float: none;
    width: auto;
    margin-top: 0;
    background-color: transparent;
    border: 0;
    box-shadow: none;
  }
  .navbar-nav .open .dropdown-menu > li > a,
  .navbar-nav .open .dropdown-menu .dropdown-header {
    padding: 5px 15px 5px 25px;
  }
  .navbar-nav .open .dropdown-menu > li > a {
    line-height: 18px;
  }
  .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-nav .open .dropdown-menu > li > a:focus {
    background-image: none;
  }
}
@media (min-width: 541px) {
  .navbar-nav {
    float: left;
    margin: 0;
  }
  .navbar-nav > li {
    float: left;
  }
  .navbar-nav > li > a {
    padding-top: 6px;
    padding-bottom: 6px;
  }
}
.navbar-form {
  margin-left: 0px;
  margin-right: 0px;
  padding: 10px 0px;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  margin-top: -1px;
  margin-bottom: -1px;
}
@media (min-width: 768px) {
  .navbar-form .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .navbar-form .form-control-static {
    display: inline-block;
  }
  .navbar-form .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .navbar-form .input-group .input-group-addon,
  .navbar-form .input-group .input-group-btn,
  .navbar-form .input-group .form-control {
    width: auto;
  }
  .navbar-form .input-group > .form-control {
    width: 100%;
  }
  .navbar-form .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio,
  .navbar-form .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio label,
  .navbar-form .checkbox label {
    padding-left: 0;
  }
  .navbar-form .radio input[type="radio"],
  .navbar-form .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .navbar-form .has-feedback .form-control-feedback {
    top: 0;
  }
}
@media (max-width: 540px) {
  .navbar-form .form-group {
    margin-bottom: 5px;
  }
  .navbar-form .form-group:last-child {
    margin-bottom: 0;
  }
}
@media (min-width: 541px) {
  .navbar-form {
    width: auto;
    border: 0;
    margin-left: 0;
    margin-right: 0;
    padding-top: 0;
    padding-bottom: 0;
    -webkit-box-shadow: none;
    box-shadow: none;
  }
}
.navbar-nav > li > .dropdown-menu {
  margin-top: 0;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
  margin-bottom: 0;
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.navbar-btn {
  margin-top: -1px;
  margin-bottom: -1px;
}
.navbar-btn.btn-sm {
  margin-top: 0px;
  margin-bottom: 0px;
}
.navbar-btn.btn-xs {
  margin-top: 4px;
  margin-bottom: 4px;
}
.navbar-text {
  margin-top: 6px;
  margin-bottom: 6px;
}
@media (min-width: 541px) {
  .navbar-text {
    float: left;
    margin-left: 0px;
    margin-right: 0px;
  }
}
@media (min-width: 541px) {
  .navbar-left {
    float: left !important;
    float: left;
  }
  .navbar-right {
    float: right !important;
    float: right;
    margin-right: 0px;
  }
  .navbar-right ~ .navbar-right {
    margin-right: 0;
  }
}
.navbar-default {
  background-color: #f8f8f8;
  border-color: #e7e7e7;
}
.navbar-default .navbar-brand {
  color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
  color: #5e5e5e;
  background-color: transparent;
}
.navbar-default .navbar-text {
  color: #777;
}
.navbar-default .navbar-nav > li > a {
  color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
  color: #333;
  background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
  color: #555;
  background-color: #e7e7e7;
}
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
  color: #ccc;
  background-color: transparent;
}
.navbar-default .navbar-toggle {
  border-color: #ddd;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
  background-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
  background-color: #888;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
  border-color: #e7e7e7;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
  background-color: #e7e7e7;
  color: #555;
}
@media (max-width: 540px) {
  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
    color: #777;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #333;
    background-color: transparent;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #555;
    background-color: #e7e7e7;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #ccc;
    background-color: transparent;
  }
}
.navbar-default .navbar-link {
  color: #777;
}
.navbar-default .navbar-link:hover {
  color: #333;
}
.navbar-default .btn-link {
  color: #777;
}
.navbar-default .btn-link:hover,
.navbar-default .btn-link:focus {
  color: #333;
}
.navbar-default .btn-link[disabled]:hover,
fieldset[disabled] .navbar-default .btn-link:hover,
.navbar-default .btn-link[disabled]:focus,
fieldset[disabled] .navbar-default .btn-link:focus {
  color: #ccc;
}
.navbar-inverse {
  background-color: #222;
  border-color: #080808;
}
.navbar-inverse .navbar-brand {
  color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-text {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
  color: #fff;
  background-color: #080808;
}
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
  color: #444;
  background-color: transparent;
}
.navbar-inverse .navbar-toggle {
  border-color: #333;
}
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
  background-color: #333;
}
.navbar-inverse .navbar-toggle .icon-bar {
  background-color: #fff;
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
  border-color: #101010;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
  background-color: #080808;
  color: #fff;
}
@media (max-width: 540px) {
  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
    border-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
    color: #9d9d9d;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #fff;
    background-color: transparent;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #fff;
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #444;
    background-color: transparent;
  }
}
.navbar-inverse .navbar-link {
  color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
  color: #fff;
}
.navbar-inverse .btn-link {
  color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
  color: #fff;
}
.navbar-inverse .btn-link[disabled]:hover,
fieldset[disabled] .navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link[disabled]:focus,
fieldset[disabled] .navbar-inverse .btn-link:focus {
  color: #444;
}
.breadcrumb {
  padding: 8px 15px;
  margin-bottom: 18px;
  list-style: none;
  background-color: #f5f5f5;
  border-radius: 2px;
}
.breadcrumb > li {
  display: inline-block;
}
.breadcrumb > li + li:before {
  content: "/\00a0";
  padding: 0 5px;
  color: #5e5e5e;
}
.breadcrumb > .active {
  color: #777777;
}
.pagination {
  display: inline-block;
  padding-left: 0;
  margin: 18px 0;
  border-radius: 2px;
}
.pagination > li {
  display: inline;
}
.pagination > li > a,
.pagination > li > span {
  position: relative;
  float: left;
  padding: 6px 12px;
  line-height: 1.42857143;
  text-decoration: none;
  color: #337ab7;
  background-color: #fff;
  border: 1px solid #ddd;
  margin-left: -1px;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
  margin-left: 0;
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
  border-bottom-right-radius: 2px;
  border-top-right-radius: 2px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
  z-index: 2;
  color: #23527c;
  background-color: #eeeeee;
  border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
  z-index: 3;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
  cursor: default;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
  color: #777777;
  background-color: #fff;
  border-color: #ddd;
  cursor: not-allowed;
}
.pagination-lg > li > a,
.pagination-lg > li > span {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px;
}
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
}
.pagination-sm > li > a,
.pagination-sm > li > span {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
  border-bottom-left-radius: 1px;
  border-top-left-radius: 1px;
}
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
  border-bottom-right-radius: 1px;
  border-top-right-radius: 1px;
}
.pager {
  padding-left: 0;
  margin: 18px 0;
  list-style: none;
  text-align: center;
}
.pager li {
  display: inline;
}
.pager li > a,
.pager li > span {
  display: inline-block;
  padding: 5px 14px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 15px;
}
.pager li > a:hover,
.pager li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.pager .next > a,
.pager .next > span {
  float: right;
}
.pager .previous > a,
.pager .previous > span {
  float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
  color: #777777;
  background-color: #fff;
  cursor: not-allowed;
}
.label {
  display: inline;
  padding: .2em .6em .3em;
  font-size: 75%;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: .25em;
}
a.label:hover,
a.label:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.label:empty {
  display: none;
}
.btn .label {
  position: relative;
  top: -1px;
}
.label-default {
  background-color: #777777;
}
.label-default[href]:hover,
.label-default[href]:focus {
  background-color: #5e5e5e;
}
.label-primary {
  background-color: #337ab7;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
  background-color: #286090;
}
.label-success {
  background-color: #5cb85c;
}
.label-success[href]:hover,
.label-success[href]:focus {
  background-color: #449d44;
}
.label-info {
  background-color: #5bc0de;
}
.label-info[href]:hover,
.label-info[href]:focus {
  background-color: #31b0d5;
}
.label-warning {
  background-color: #f0ad4e;
}
.label-warning[href]:hover,
.label-warning[href]:focus {
  background-color: #ec971f;
}
.label-danger {
  background-color: #d9534f;
}
.label-danger[href]:hover,
.label-danger[href]:focus {
  background-color: #c9302c;
}
.badge {
  display: inline-block;
  min-width: 10px;
  padding: 3px 7px;
  font-size: 12px;
  font-weight: bold;
  color: #fff;
  line-height: 1;
  vertical-align: middle;
  white-space: nowrap;
  text-align: center;
  background-color: #777777;
  border-radius: 10px;
}
.badge:empty {
  display: none;
}
.btn .badge {
  position: relative;
  top: -1px;
}
.btn-xs .badge,
.btn-group-xs > .btn .badge {
  top: 0;
  padding: 1px 5px;
}
a.badge:hover,
a.badge:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
  color: #337ab7;
  background-color: #fff;
}
.list-group-item > .badge {
  float: right;
}
.list-group-item > .badge + .badge {
  margin-right: 5px;
}
.nav-pills > li > a > .badge {
  margin-left: 3px;
}
.jumbotron {
  padding-top: 30px;
  padding-bottom: 30px;
  margin-bottom: 30px;
  color: inherit;
  background-color: #eeeeee;
}
.jumbotron h1,
.jumbotron .h1 {
  color: inherit;
}
.jumbotron p {
  margin-bottom: 15px;
  font-size: 20px;
  font-weight: 200;
}
.jumbotron > hr {
  border-top-color: #d5d5d5;
}
.container .jumbotron,
.container-fluid .jumbotron {
  border-radius: 3px;
  padding-left: 0px;
  padding-right: 0px;
}
.jumbotron .container {
  max-width: 100%;
}
@media screen and (min-width: 768px) {
  .jumbotron {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .container .jumbotron,
  .container-fluid .jumbotron {
    padding-left: 60px;
    padding-right: 60px;
  }
  .jumbotron h1,
  .jumbotron .h1 {
    font-size: 59px;
  }
}
.thumbnail {
  display: block;
  padding: 4px;
  margin-bottom: 18px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: border 0.2s ease-in-out;
  -o-transition: border 0.2s ease-in-out;
  transition: border 0.2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
  margin-left: auto;
  margin-right: auto;
}
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
  border-color: #337ab7;
}
.thumbnail .caption {
  padding: 9px;
  color: #000;
}
.alert {
  padding: 15px;
  margin-bottom: 18px;
  border: 1px solid transparent;
  border-radius: 2px;
}
.alert h4 {
  margin-top: 0;
  color: inherit;
}
.alert .alert-link {
  font-weight: bold;
}
.alert > p,
.alert > ul {
  margin-bottom: 0;
}
.alert > p + p {
  margin-top: 5px;
}
.alert-dismissable,
.alert-dismissible {
  padding-right: 35px;
}
.alert-dismissable .close,
.alert-dismissible .close {
  position: relative;
  top: -2px;
  right: -21px;
  color: inherit;
}
.alert-success {
  background-color: #dff0d8;
  border-color: #d6e9c6;
  color: #3c763d;
}
.alert-success hr {
  border-top-color: #c9e2b3;
}
.alert-success .alert-link {
  color: #2b542c;
}
.alert-info {
  background-color: #d9edf7;
  border-color: #bce8f1;
  color: #31708f;
}
.alert-info hr {
  border-top-color: #a6e1ec;
}
.alert-info .alert-link {
  color: #245269;
}
.alert-warning {
  background-color: #fcf8e3;
  border-color: #faebcc;
  color: #8a6d3b;
}
.alert-warning hr {
  border-top-color: #f7e1b5;
}
.alert-warning .alert-link {
  color: #66512c;
}
.alert-danger {
  background-color: #f2dede;
  border-color: #ebccd1;
  color: #a94442;
}
.alert-danger hr {
  border-top-color: #e4b9c0;
}
.alert-danger .alert-link {
  color: #843534;
}
@-webkit-keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
@keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
.progress {
  overflow: hidden;
  height: 18px;
  margin-bottom: 18px;
  background-color: #f5f5f5;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-bar {
  float: left;
  width: 0%;
  height: 100%;
  font-size: 12px;
  line-height: 18px;
  color: #fff;
  text-align: center;
  background-color: #337ab7;
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  -webkit-transition: width 0.6s ease;
  -o-transition: width 0.6s ease;
  transition: width 0.6s ease;
}
.progress-striped .progress-bar,
.progress-bar-striped {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-size: 40px 40px;
}
.progress.active .progress-bar,
.progress-bar.active {
  -webkit-animation: progress-bar-stripes 2s linear infinite;
  -o-animation: progress-bar-stripes 2s linear infinite;
  animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar-success {
  background-color: #5cb85c;
}
.progress-striped .progress-bar-success {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-info {
  background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-warning {
  background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-danger {
  background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.media {
  margin-top: 15px;
}
.media:first-child {
  margin-top: 0;
}
.media,
.media-body {
  zoom: 1;
  overflow: hidden;
}
.media-body {
  width: 10000px;
}
.media-object {
  display: block;
}
.media-object.img-thumbnail {
  max-width: none;
}
.media-right,
.media > .pull-right {
  padding-left: 10px;
}
.media-left,
.media > .pull-left {
  padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
  display: table-cell;
  vertical-align: top;
}
.media-middle {
  vertical-align: middle;
}
.media-bottom {
  vertical-align: bottom;
}
.media-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.media-list {
  padding-left: 0;
  list-style: none;
}
.list-group {
  margin-bottom: 20px;
  padding-left: 0;
}
.list-group-item {
  position: relative;
  display: block;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid #ddd;
}
.list-group-item:first-child {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
}
.list-group-item:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
a.list-group-item,
button.list-group-item {
  color: #555;
}
a.list-group-item .list-group-item-heading,
button.list-group-item .list-group-item-heading {
  color: #333;
}
a.list-group-item:hover,
button.list-group-item:hover,
a.list-group-item:focus,
button.list-group-item:focus {
  text-decoration: none;
  color: #555;
  background-color: #f5f5f5;
}
button.list-group-item {
  width: 100%;
  text-align: left;
}
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
  background-color: #eeeeee;
  color: #777777;
  cursor: not-allowed;
}
.list-group-item.disabled .list-group-item-heading,
.list-group-item.disabled:hover .list-group-item-heading,
.list-group-item.disabled:focus .list-group-item-heading {
  color: inherit;
}
.list-group-item.disabled .list-group-item-text,
.list-group-item.disabled:hover .list-group-item-text,
.list-group-item.disabled:focus .list-group-item-text {
  color: #777777;
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
  z-index: 2;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
.list-group-item.active:focus .list-group-item-heading,
.list-group-item.active .list-group-item-heading > small,
.list-group-item.active:hover .list-group-item-heading > small,
.list-group-item.active:focus .list-group-item-heading > small,
.list-group-item.active .list-group-item-heading > .small,
.list-group-item.active:hover .list-group-item-heading > .small,
.list-group-item.active:focus .list-group-item-heading > .small {
  color: inherit;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
  color: #c7ddef;
}
.list-group-item-success {
  color: #3c763d;
  background-color: #dff0d8;
}
a.list-group-item-success,
button.list-group-item-success {
  color: #3c763d;
}
a.list-group-item-success .list-group-item-heading,
button.list-group-item-success .list-group-item-heading {
  color: inherit;
}
a.list-group-item-success:hover,
button.list-group-item-success:hover,
a.list-group-item-success:focus,
button.list-group-item-success:focus {
  color: #3c763d;
  background-color: #d0e9c6;
}
a.list-group-item-success.active,
button.list-group-item-success.active,
a.list-group-item-success.active:hover,
button.list-group-item-success.active:hover,
a.list-group-item-success.active:focus,
button.list-group-item-success.active:focus {
  color: #fff;
  background-color: #3c763d;
  border-color: #3c763d;
}
.list-group-item-info {
  color: #31708f;
  background-color: #d9edf7;
}
a.list-group-item-info,
button.list-group-item-info {
  color: #31708f;
}
a.list-group-item-info .list-group-item-heading,
button.list-group-item-info .list-group-item-heading {
  color: inherit;
}
a.list-group-item-info:hover,
button.list-group-item-info:hover,
a.list-group-item-info:focus,
button.list-group-item-info:focus {
  color: #31708f;
  background-color: #c4e3f3;
}
a.list-group-item-info.active,
button.list-group-item-info.active,
a.list-group-item-info.active:hover,
button.list-group-item-info.active:hover,
a.list-group-item-info.active:focus,
button.list-group-item-info.active:focus {
  color: #fff;
  background-color: #31708f;
  border-color: #31708f;
}
.list-group-item-warning {
  color: #8a6d3b;
  background-color: #fcf8e3;
}
a.list-group-item-warning,
button.list-group-item-warning {
  color: #8a6d3b;
}
a.list-group-item-warning .list-group-item-heading,
button.list-group-item-warning .list-group-item-heading {
  color: inherit;
}
a.list-group-item-warning:hover,
button.list-group-item-warning:hover,
a.list-group-item-warning:focus,
button.list-group-item-warning:focus {
  color: #8a6d3b;
  background-color: #faf2cc;
}
a.list-group-item-warning.active,
button.list-group-item-warning.active,
a.list-group-item-warning.active:hover,
button.list-group-item-warning.active:hover,
a.list-group-item-warning.active:focus,
button.list-group-item-warning.active:focus {
  color: #fff;
  background-color: #8a6d3b;
  border-color: #8a6d3b;
}
.list-group-item-danger {
  color: #a94442;
  background-color: #f2dede;
}
a.list-group-item-danger,
button.list-group-item-danger {
  color: #a94442;
}
a.list-group-item-danger .list-group-item-heading,
button.list-group-item-danger .list-group-item-heading {
  color: inherit;
}
a.list-group-item-danger:hover,
button.list-group-item-danger:hover,
a.list-group-item-danger:focus,
button.list-group-item-danger:focus {
  color: #a94442;
  background-color: #ebcccc;
}
a.list-group-item-danger.active,
button.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
button.list-group-item-danger.active:hover,
a.list-group-item-danger.active:focus,
button.list-group-item-danger.active:focus {
  color: #fff;
  background-color: #a94442;
  border-color: #a94442;
}
.list-group-item-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.list-group-item-text {
  margin-bottom: 0;
  line-height: 1.3;
}
.panel {
  margin-bottom: 18px;
  background-color: #fff;
  border: 1px solid transparent;
  border-radius: 2px;
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}
.panel-body {
  padding: 15px;
}
.panel-heading {
  padding: 10px 15px;
  border-bottom: 1px solid transparent;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel-heading > .dropdown .dropdown-toggle {
  color: inherit;
}
.panel-title {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 15px;
  color: inherit;
}
.panel-title > a,
.panel-title > small,
.panel-title > .small,
.panel-title > small > a,
.panel-title > .small > a {
  color: inherit;
}
.panel-footer {
  padding: 10px 15px;
  background-color: #f5f5f5;
  border-top: 1px solid #ddd;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .list-group,
.panel > .panel-collapse > .list-group {
  margin-bottom: 0;
}
.panel > .list-group .list-group-item,
.panel > .panel-collapse > .list-group .list-group-item {
  border-width: 1px 0;
  border-radius: 0;
}
.panel > .list-group:first-child .list-group-item:first-child,
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
  border-top: 0;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .list-group:last-child .list-group-item:last-child,
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
  border-bottom: 0;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.panel-heading + .list-group .list-group-item:first-child {
  border-top-width: 0;
}
.list-group + .panel-footer {
  border-top-width: 0;
}
.panel > .table,
.panel > .table-responsive > .table,
.panel > .panel-collapse > .table {
  margin-bottom: 0;
}
.panel > .table caption,
.panel > .table-responsive > .table caption,
.panel > .panel-collapse > .table caption {
  padding-left: 15px;
  padding-right: 15px;
}
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
  border-top-left-radius: 1px;
  border-top-right-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
  border-top-right-radius: 1px;
}
.panel > .table:last-child,
.panel > .table-responsive:last-child > .table:last-child {
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
  border-bottom-left-radius: 1px;
  border-bottom-right-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
  border-bottom-right-radius: 1px;
}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
  border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
.panel > .table > tbody:first-child > tr:first-child td {
  border-top: 0;
}
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
  border: 0;
}
.panel > .table-bordered > thead > tr > th:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
.panel > .table-bordered > tbody > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
.panel > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-bordered > thead > tr > td:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
.panel > .table-bordered > tbody > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
.panel > .table-bordered > tfoot > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  border-left: 0;
}
.panel > .table-bordered > thead > tr > th:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
.panel > .table-bordered > tbody > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
.panel > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-bordered > thead > tr > td:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
.panel > .table-bordered > tbody > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
.panel > .table-bordered > tfoot > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  border-right: 0;
}
.panel > .table-bordered > thead > tr:first-child > td,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
.panel > .table-bordered > tbody > tr:first-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
.panel > .table-bordered > thead > tr:first-child > th,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
.panel > .table-bordered > tbody > tr:first-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
  border-bottom: 0;
}
.panel > .table-bordered > tbody > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
.panel > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-bordered > tbody > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
.panel > .table-bordered > tfoot > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
  border-bottom: 0;
}
.panel > .table-responsive {
  border: 0;
  margin-bottom: 0;
}
.panel-group {
  margin-bottom: 18px;
}
.panel-group .panel {
  margin-bottom: 0;
  border-radius: 2px;
}
.panel-group .panel + .panel {
  margin-top: 5px;
}
.panel-group .panel-heading {
  border-bottom: 0;
}
.panel-group .panel-heading + .panel-collapse > .panel-body,
.panel-group .panel-heading + .panel-collapse > .list-group {
  border-top: 1px solid #ddd;
}
.panel-group .panel-footer {
  border-top: 0;
}
.panel-group .panel-footer + .panel-collapse .panel-body {
  border-bottom: 1px solid #ddd;
}
.panel-default {
  border-color: #ddd;
}
.panel-default > .panel-heading {
  color: #333333;
  background-color: #f5f5f5;
  border-color: #ddd;
}
.panel-default > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ddd;
}
.panel-default > .panel-heading .badge {
  color: #f5f5f5;
  background-color: #333333;
}
.panel-default > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ddd;
}
.panel-primary {
  border-color: #337ab7;
}
.panel-primary > .panel-heading {
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #337ab7;
}
.panel-primary > .panel-heading .badge {
  color: #337ab7;
  background-color: #fff;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #337ab7;
}
.panel-success {
  border-color: #d6e9c6;
}
.panel-success > .panel-heading {
  color: #3c763d;
  background-color: #dff0d8;
  border-color: #d6e9c6;
}
.panel-success > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #d6e9c6;
}
.panel-success > .panel-heading .badge {
  color: #dff0d8;
  background-color: #3c763d;
}
.panel-success > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #d6e9c6;
}
.panel-info {
  border-color: #bce8f1;
}
.panel-info > .panel-heading {
  color: #31708f;
  background-color: #d9edf7;
  border-color: #bce8f1;
}
.panel-info > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #bce8f1;
}
.panel-info > .panel-heading .badge {
  color: #d9edf7;
  background-color: #31708f;
}
.panel-info > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #bce8f1;
}
.panel-warning {
  border-color: #faebcc;
}
.panel-warning > .panel-heading {
  color: #8a6d3b;
  background-color: #fcf8e3;
  border-color: #faebcc;
}
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #faebcc;
}
.panel-warning > .panel-heading .badge {
  color: #fcf8e3;
  background-color: #8a6d3b;
}
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #faebcc;
}
.panel-danger {
  border-color: #ebccd1;
}
.panel-danger > .panel-heading {
  color: #a94442;
  background-color: #f2dede;
  border-color: #ebccd1;
}
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ebccd1;
}
.panel-danger > .panel-heading .badge {
  color: #f2dede;
  background-color: #a94442;
}
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ebccd1;
}
.embed-responsive {
  position: relative;
  display: block;
  height: 0;
  padding: 0;
  overflow: hidden;
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  border: 0;
}
.embed-responsive-16by9 {
  padding-bottom: 56.25%;
}
.embed-responsive-4by3 {
  padding-bottom: 75%;
}
.well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
.well blockquote {
  border-color: #ddd;
  border-color: rgba(0, 0, 0, 0.15);
}
.well-lg {
  padding: 24px;
  border-radius: 3px;
}
.well-sm {
  padding: 9px;
  border-radius: 1px;
}
.close {
  float: right;
  font-size: 19.5px;
  font-weight: bold;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.2;
  filter: alpha(opacity=20);
}
.close:hover,
.close:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.5;
  filter: alpha(opacity=50);
}
button.close {
  padding: 0;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
}
.modal-open {
  overflow: hidden;
}
.modal {
  display: none;
  overflow: hidden;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  -webkit-overflow-scrolling: touch;
  outline: 0;
}
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, -25%);
  -ms-transform: translate(0, -25%);
  -o-transform: translate(0, -25%);
  transform: translate(0, -25%);
  -webkit-transition: -webkit-transform 0.3s ease-out;
  -moz-transition: -moz-transform 0.3s ease-out;
  -o-transition: -o-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
}
.modal.in .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}
.modal-dialog {
  position: relative;
  width: auto;
  margin: 10px;
}
.modal-content {
  position: relative;
  background-color: #fff;
  border: 1px solid #999;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  background-clip: padding-box;
  outline: 0;
}
.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000;
}
.modal-backdrop.fade {
  opacity: 0;
  filter: alpha(opacity=0);
}
.modal-backdrop.in {
  opacity: 0.5;
  filter: alpha(opacity=50);
}
.modal-header {
  padding: 15px;
  border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
  margin-top: -2px;
}
.modal-title {
  margin: 0;
  line-height: 1.42857143;
}
.modal-body {
  position: relative;
  padding: 15px;
}
.modal-footer {
  padding: 15px;
  text-align: right;
  border-top: 1px solid #e5e5e5;
}
.modal-footer .btn + .btn {
  margin-left: 5px;
  margin-bottom: 0;
}
.modal-footer .btn-group .btn + .btn {
  margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
  margin-left: 0;
}
.modal-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}
@media (min-width: 768px) {
  .modal-dialog {
    width: 600px;
    margin: 30px auto;
  }
  .modal-content {
    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  }
  .modal-sm {
    width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg {
    width: 900px;
  }
}
.tooltip {
  position: absolute;
  z-index: 1070;
  display: block;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 12px;
  opacity: 0;
  filter: alpha(opacity=0);
}
.tooltip.in {
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.tooltip.top {
  margin-top: -3px;
  padding: 5px 0;
}
.tooltip.right {
  margin-left: 3px;
  padding: 0 5px;
}
.tooltip.bottom {
  margin-top: 3px;
  padding: 5px 0;
}
.tooltip.left {
  margin-left: -3px;
  padding: 0 5px;
}
.tooltip-inner {
  max-width: 200px;
  padding: 3px 8px;
  color: #fff;
  text-align: center;
  background-color: #000;
  border-radius: 2px;
}
.tooltip-arrow {
  position: absolute;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.tooltip.top .tooltip-arrow {
  bottom: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-left .tooltip-arrow {
  bottom: 0;
  right: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-right .tooltip-arrow {
  bottom: 0;
  left: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.right .tooltip-arrow {
  top: 50%;
  left: 0;
  margin-top: -5px;
  border-width: 5px 5px 5px 0;
  border-right-color: #000;
}
.tooltip.left .tooltip-arrow {
  top: 50%;
  right: 0;
  margin-top: -5px;
  border-width: 5px 0 5px 5px;
  border-left-color: #000;
}
.tooltip.bottom .tooltip-arrow {
  top: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-left .tooltip-arrow {
  top: 0;
  right: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-right .tooltip-arrow {
  top: 0;
  left: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1060;
  display: none;
  max-width: 276px;
  padding: 1px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 13px;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.popover.top {
  margin-top: -10px;
}
.popover.right {
  margin-left: 10px;
}
.popover.bottom {
  margin-top: 10px;
}
.popover.left {
  margin-left: -10px;
}
.popover-title {
  margin: 0;
  padding: 8px 14px;
  font-size: 13px;
  background-color: #f7f7f7;
  border-bottom: 1px solid #ebebeb;
  border-radius: 2px 2px 0 0;
}
.popover-content {
  padding: 9px 14px;
}
.popover > .arrow,
.popover > .arrow:after {
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.popover > .arrow {
  border-width: 11px;
}
.popover > .arrow:after {
  border-width: 10px;
  content: "";
}
.popover.top > .arrow {
  left: 50%;
  margin-left: -11px;
  border-bottom-width: 0;
  border-top-color: #999999;
  border-top-color: rgba(0, 0, 0, 0.25);
  bottom: -11px;
}
.popover.top > .arrow:after {
  content: " ";
  bottom: 1px;
  margin-left: -10px;
  border-bottom-width: 0;
  border-top-color: #fff;
}
.popover.right > .arrow {
  top: 50%;
  left: -11px;
  margin-top: -11px;
  border-left-width: 0;
  border-right-color: #999999;
  border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.right > .arrow:after {
  content: " ";
  left: 1px;
  bottom: -10px;
  border-left-width: 0;
  border-right-color: #fff;
}
.popover.bottom > .arrow {
  left: 50%;
  margin-left: -11px;
  border-top-width: 0;
  border-bottom-color: #999999;
  border-bottom-color: rgba(0, 0, 0, 0.25);
  top: -11px;
}
.popover.bottom > .arrow:after {
  content: " ";
  top: 1px;
  margin-left: -10px;
  border-top-width: 0;
  border-bottom-color: #fff;
}
.popover.left > .arrow {
  top: 50%;
  right: -11px;
  margin-top: -11px;
  border-right-width: 0;
  border-left-color: #999999;
  border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.left > .arrow:after {
  content: " ";
  right: 1px;
  border-right-width: 0;
  border-left-color: #fff;
  bottom: -10px;
}
.carousel {
  position: relative;
}
.carousel-inner {
  position: relative;
  overflow: hidden;
  width: 100%;
}
.carousel-inner > .item {
  display: none;
  position: relative;
  -webkit-transition: 0.6s ease-in-out left;
  -o-transition: 0.6s ease-in-out left;
  transition: 0.6s ease-in-out left;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  line-height: 1;
}
@media all and (transform-3d), (-webkit-transform-3d) {
  .carousel-inner > .item {
    -webkit-transition: -webkit-transform 0.6s ease-in-out;
    -moz-transition: -moz-transform 0.6s ease-in-out;
    -o-transition: -o-transform 0.6s ease-in-out;
    transition: transform 0.6s ease-in-out;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-perspective: 1000px;
    -moz-perspective: 1000px;
    perspective: 1000px;
  }
  .carousel-inner > .item.next,
  .carousel-inner > .item.active.right {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.prev,
  .carousel-inner > .item.active.left {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.next.left,
  .carousel-inner > .item.prev.right,
  .carousel-inner > .item.active {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    left: 0;
  }
}
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
  display: block;
}
.carousel-inner > .active {
  left: 0;
}
.carousel-inner > .next,
.carousel-inner > .prev {
  position: absolute;
  top: 0;
  width: 100%;
}
.carousel-inner > .next {
  left: 100%;
}
.carousel-inner > .prev {
  left: -100%;
}
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
  left: 0;
}
.carousel-inner > .active.left {
  left: -100%;
}
.carousel-inner > .active.right {
  left: 100%;
}
.carousel-control {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 15%;
  opacity: 0.5;
  filter: alpha(opacity=50);
  font-size: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  background-color: rgba(0, 0, 0, 0);
}
.carousel-control.left {
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
}
.carousel-control.right {
  left: auto;
  right: 0;
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
}
.carousel-control:hover,
.carousel-control:focus {
  outline: 0;
  color: #fff;
  text-decoration: none;
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.carousel-control .icon-prev,
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right {
  position: absolute;
  top: 50%;
  margin-top: -10px;
  z-index: 5;
  display: inline-block;
}
.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
  left: 50%;
  margin-left: -10px;
}
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-right {
  right: 50%;
  margin-right: -10px;
}
.carousel-control .icon-prev,
.carousel-control .icon-next {
  width: 20px;
  height: 20px;
  line-height: 1;
  font-family: serif;
}
.carousel-control .icon-prev:before {
  content: '\2039';
}
.carousel-control .icon-next:before {
  content: '\203a';
}
.carousel-indicators {
  position: absolute;
  bottom: 10px;
  left: 50%;
  z-index: 15;
  width: 60%;
  margin-left: -30%;
  padding-left: 0;
  list-style: none;
  text-align: center;
}
.carousel-indicators li {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 1px;
  text-indent: -999px;
  border: 1px solid #fff;
  border-radius: 10px;
  cursor: pointer;
  background-color: #000 \9;
  background-color: rgba(0, 0, 0, 0);
}
.carousel-indicators .active {
  margin: 0;
  width: 12px;
  height: 12px;
  background-color: #fff;
}
.carousel-caption {
  position: absolute;
  left: 15%;
  right: 15%;
  bottom: 20px;
  z-index: 10;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.carousel-caption .btn {
  text-shadow: none;
}
@media screen and (min-width: 768px) {
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-prev,
  .carousel-control .icon-next {
    width: 30px;
    height: 30px;
    margin-top: -10px;
    font-size: 30px;
  }
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .icon-prev {
    margin-left: -10px;
  }
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-next {
    margin-right: -10px;
  }
  .carousel-caption {
    left: 20%;
    right: 20%;
    padding-bottom: 30px;
  }
  .carousel-indicators {
    bottom: 20px;
  }
}
.clearfix:before,
.clearfix:after,
.dl-horizontal dd:before,
.dl-horizontal dd:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after,
.form-horizontal .form-group:before,
.form-horizontal .form-group:after,
.btn-toolbar:before,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:before,
.btn-group-vertical > .btn-group:after,
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-collapse:before,
.navbar-collapse:after,
.pager:before,
.pager:after,
.panel-body:before,
.panel-body:after,
.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after,
.item_buttons:before,
.item_buttons:after {
  content: " ";
  display: table;
}
.clearfix:after,
.dl-horizontal dd:after,
.container:after,
.container-fluid:after,
.row:after,
.form-horizontal .form-group:after,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:after,
.nav:after,
.navbar:after,
.navbar-header:after,
.navbar-collapse:after,
.pager:after,
.panel-body:after,
.modal-header:after,
.modal-footer:after,
.item_buttons:after {
  clear: both;
}
.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.pull-right {
  float: right !important;
}
.pull-left {
  float: left !important;
}
.hide {
  display: none !important;
}
.show {
  display: block !important;
}
.invisible {
  visibility: hidden;
}
.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.hidden {
  display: none !important;
}
.affix {
  position: fixed;
}
@-ms-viewport {
  width: device-width;
}
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
  display: none !important;
}
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
  display: none !important;
}
@media (max-width: 767px) {
  .visible-xs {
    display: block !important;
  }
  table.visible-xs {
    display: table !important;
  }
  tr.visible-xs {
    display: table-row !important;
  }
  th.visible-xs,
  td.visible-xs {
    display: table-cell !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-block {
    display: block !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline {
    display: inline !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm {
    display: block !important;
  }
  table.visible-sm {
    display: table !important;
  }
  tr.visible-sm {
    display: table-row !important;
  }
  th.visible-sm,
  td.visible-sm {
    display: table-cell !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-block {
    display: block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline {
    display: inline !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md {
    display: block !important;
  }
  table.visible-md {
    display: table !important;
  }
  tr.visible-md {
    display: table-row !important;
  }
  th.visible-md,
  td.visible-md {
    display: table-cell !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-block {
    display: block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline {
    display: inline !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg {
    display: block !important;
  }
  table.visible-lg {
    display: table !important;
  }
  tr.visible-lg {
    display: table-row !important;
  }
  th.visible-lg,
  td.visible-lg {
    display: table-cell !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-block {
    display: block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline {
    display: inline !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline-block {
    display: inline-block !important;
  }
}
@media (max-width: 767px) {
  .hidden-xs {
    display: none !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .hidden-sm {
    display: none !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .hidden-md {
    display: none !important;
  }
}
@media (min-width: 1200px) {
  .hidden-lg {
    display: none !important;
  }
}
.visible-print {
  display: none !important;
}
@media print {
  .visible-print {
    display: block !important;
  }
  table.visible-print {
    display: table !important;
  }
  tr.visible-print {
    display: table-row !important;
  }
  th.visible-print,
  td.visible-print {
    display: table-cell !important;
  }
}
.visible-print-block {
  display: none !important;
}
@media print {
  .visible-print-block {
    display: block !important;
  }
}
.visible-print-inline {
  display: none !important;
}
@media print {
  .visible-print-inline {
    display: inline !important;
  }
}
.visible-print-inline-block {
  display: none !important;
}
@media print {
  .visible-print-inline-block {
    display: inline-block !important;
  }
}
@media print {
  .hidden-print {
    display: none !important;
  }
}
/*!
*
* Font Awesome
*
*/
/*!
 *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */
/* FONT PATH
 * -------------------------- */
@font-face {
  font-family: 'FontAwesome';
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.7.0');
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}
.fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
  font-size: 1.33333333em;
  line-height: 0.75em;
  vertical-align: -15%;
}
.fa-2x {
  font-size: 2em;
}
.fa-3x {
  font-size: 3em;
}
.fa-4x {
  font-size: 4em;
}
.fa-5x {
  font-size: 5em;
}
.fa-fw {
  width: 1.28571429em;
  text-align: center;
}
.fa-ul {
  padding-left: 0;
  margin-left: 2.14285714em;
  list-style-type: none;
}
.fa-ul > li {
  position: relative;
}
.fa-li {
  position: absolute;
  left: -2.14285714em;
  width: 2.14285714em;
  top: 0.14285714em;
  text-align: center;
}
.fa-li.fa-lg {
  left: -1.85714286em;
}
.fa-border {
  padding: .2em .25em .15em;
  border: solid 0.08em #eee;
  border-radius: .1em;
}
.fa-pull-left {
  float: left;
}
.fa-pull-right {
  float: right;
}
.fa.fa-pull-left {
  margin-right: .3em;
}
.fa.fa-pull-right {
  margin-left: .3em;
}
/* Deprecated as of 4.4.0 */
.pull-right {
  float: right;
}
.pull-left {
  float: left;
}
.fa.pull-left {
  margin-right: .3em;
}
.fa.pull-right {
  margin-left: .3em;
}
.fa-spin {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
}
.fa-pulse {
  -webkit-animation: fa-spin 1s infinite steps(8);
  animation: fa-spin 1s infinite steps(8);
}
@-webkit-keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
.fa-rotate-90 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}
.fa-rotate-180 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.fa-rotate-270 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg);
}
.fa-flip-horizontal {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
  -webkit-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  transform: scale(-1, 1);
}
.fa-flip-vertical {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
  -webkit-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
  filter: none;
}
.fa-stack {
  position: relative;
  display: inline-block;
  width: 2em;
  height: 2em;
  line-height: 2em;
  vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
}
.fa-stack-1x {
  line-height: inherit;
}
.fa-stack-2x {
  font-size: 2em;
}
.fa-inverse {
  color: #fff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
   readers do not read off random characters that represent icons */
.fa-glass:before {
  content: "\f000";
}
.fa-music:before {
  content: "\f001";
}
.fa-search:before {
  content: "\f002";
}
.fa-envelope-o:before {
  content: "\f003";
}
.fa-heart:before {
  content: "\f004";
}
.fa-star:before {
  content: "\f005";
}
.fa-star-o:before {
  content: "\f006";
}
.fa-user:before {
  content: "\f007";
}
.fa-film:before {
  content: "\f008";
}
.fa-th-large:before {
  content: "\f009";
}
.fa-th:before {
  content: "\f00a";
}
.fa-th-list:before {
  content: "\f00b";
}
.fa-check:before {
  content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
  content: "\f00d";
}
.fa-search-plus:before {
  content: "\f00e";
}
.fa-search-minus:before {
  content: "\f010";
}
.fa-power-off:before {
  content: "\f011";
}
.fa-signal:before {
  content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
  content: "\f013";
}
.fa-trash-o:before {
  content: "\f014";
}
.fa-home:before {
  content: "\f015";
}
.fa-file-o:before {
  content: "\f016";
}
.fa-clock-o:before {
  content: "\f017";
}
.fa-road:before {
  content: "\f018";
}
.fa-download:before {
  content: "\f019";
}
.fa-arrow-circle-o-down:before {
  content: "\f01a";
}
.fa-arrow-circle-o-up:before {
  content: "\f01b";
}
.fa-inbox:before {
  content: "\f01c";
}
.fa-play-circle-o:before {
  content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
  content: "\f01e";
}
.fa-refresh:before {
  content: "\f021";
}
.fa-list-alt:before {
  content: "\f022";
}
.fa-lock:before {
  content: "\f023";
}
.fa-flag:before {
  content: "\f024";
}
.fa-headphones:before {
  content: "\f025";
}
.fa-volume-off:before {
  content: "\f026";
}
.fa-volume-down:before {
  content: "\f027";
}
.fa-volume-up:before {
  content: "\f028";
}
.fa-qrcode:before {
  content: "\f029";
}
.fa-barcode:before {
  content: "\f02a";
}
.fa-tag:before {
  content: "\f02b";
}
.fa-tags:before {
  content: "\f02c";
}
.fa-book:before {
  content: "\f02d";
}
.fa-bookmark:before {
  content: "\f02e";
}
.fa-print:before {
  content: "\f02f";
}
.fa-camera:before {
  content: "\f030";
}
.fa-font:before {
  content: "\f031";
}
.fa-bold:before {
  content: "\f032";
}
.fa-italic:before {
  content: "\f033";
}
.fa-text-height:before {
  content: "\f034";
}
.fa-text-width:before {
  content: "\f035";
}
.fa-align-left:before {
  content: "\f036";
}
.fa-align-center:before {
  content: "\f037";
}
.fa-align-right:before {
  content: "\f038";
}
.fa-align-justify:before {
  content: "\f039";
}
.fa-list:before {
  content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
  content: "\f03b";
}
.fa-indent:before {
  content: "\f03c";
}
.fa-video-camera:before {
  content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
  content: "\f03e";
}
.fa-pencil:before {
  content: "\f040";
}
.fa-map-marker:before {
  content: "\f041";
}
.fa-adjust:before {
  content: "\f042";
}
.fa-tint:before {
  content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
  content: "\f044";
}
.fa-share-square-o:before {
  content: "\f045";
}
.fa-check-square-o:before {
  content: "\f046";
}
.fa-arrows:before {
  content: "\f047";
}
.fa-step-backward:before {
  content: "\f048";
}
.fa-fast-backward:before {
  content: "\f049";
}
.fa-backward:before {
  content: "\f04a";
}
.fa-play:before {
  content: "\f04b";
}
.fa-pause:before {
  content: "\f04c";
}
.fa-stop:before {
  content: "\f04d";
}
.fa-forward:before {
  content: "\f04e";
}
.fa-fast-forward:before {
  content: "\f050";
}
.fa-step-forward:before {
  content: "\f051";
}
.fa-eject:before {
  content: "\f052";
}
.fa-chevron-left:before {
  content: "\f053";
}
.fa-chevron-right:before {
  content: "\f054";
}
.fa-plus-circle:before {
  content: "\f055";
}
.fa-minus-circle:before {
  content: "\f056";
}
.fa-times-circle:before {
  content: "\f057";
}
.fa-check-circle:before {
  content: "\f058";
}
.fa-question-circle:before {
  content: "\f059";
}
.fa-info-circle:before {
  content: "\f05a";
}
.fa-crosshairs:before {
  content: "\f05b";
}
.fa-times-circle-o:before {
  content: "\f05c";
}
.fa-check-circle-o:before {
  content: "\f05d";
}
.fa-ban:before {
  content: "\f05e";
}
.fa-arrow-left:before {
  content: "\f060";
}
.fa-arrow-right:before {
  content: "\f061";
}
.fa-arrow-up:before {
  content: "\f062";
}
.fa-arrow-down:before {
  content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
  content: "\f064";
}
.fa-expand:before {
  content: "\f065";
}
.fa-compress:before {
  content: "\f066";
}
.fa-plus:before {
  content: "\f067";
}
.fa-minus:before {
  content: "\f068";
}
.fa-asterisk:before {
  content: "\f069";
}
.fa-exclamation-circle:before {
  content: "\f06a";
}
.fa-gift:before {
  content: "\f06b";
}
.fa-leaf:before {
  content: "\f06c";
}
.fa-fire:before {
  content: "\f06d";
}
.fa-eye:before {
  content: "\f06e";
}
.fa-eye-slash:before {
  content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
  content: "\f071";
}
.fa-plane:before {
  content: "\f072";
}
.fa-calendar:before {
  content: "\f073";
}
.fa-random:before {
  content: "\f074";
}
.fa-comment:before {
  content: "\f075";
}
.fa-magnet:before {
  content: "\f076";
}
.fa-chevron-up:before {
  content: "\f077";
}
.fa-chevron-down:before {
  content: "\f078";
}
.fa-retweet:before {
  content: "\f079";
}
.fa-shopping-cart:before {
  content: "\f07a";
}
.fa-folder:before {
  content: "\f07b";
}
.fa-folder-open:before {
  content: "\f07c";
}
.fa-arrows-v:before {
  content: "\f07d";
}
.fa-arrows-h:before {
  content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
  content: "\f080";
}
.fa-twitter-square:before {
  content: "\f081";
}
.fa-facebook-square:before {
  content: "\f082";
}
.fa-camera-retro:before {
  content: "\f083";
}
.fa-key:before {
  content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
  content: "\f085";
}
.fa-comments:before {
  content: "\f086";
}
.fa-thumbs-o-up:before {
  content: "\f087";
}
.fa-thumbs-o-down:before {
  content: "\f088";
}
.fa-star-half:before {
  content: "\f089";
}
.fa-heart-o:before {
  content: "\f08a";
}
.fa-sign-out:before {
  content: "\f08b";
}
.fa-linkedin-square:before {
  content: "\f08c";
}
.fa-thumb-tack:before {
  content: "\f08d";
}
.fa-external-link:before {
  content: "\f08e";
}
.fa-sign-in:before {
  content: "\f090";
}
.fa-trophy:before {
  content: "\f091";
}
.fa-github-square:before {
  content: "\f092";
}
.fa-upload:before {
  content: "\f093";
}
.fa-lemon-o:before {
  content: "\f094";
}
.fa-phone:before {
  content: "\f095";
}
.fa-square-o:before {
  content: "\f096";
}
.fa-bookmark-o:before {
  content: "\f097";
}
.fa-phone-square:before {
  content: "\f098";
}
.fa-twitter:before {
  content: "\f099";
}
.fa-facebook-f:before,
.fa-facebook:before {
  content: "\f09a";
}
.fa-github:before {
  content: "\f09b";
}
.fa-unlock:before {
  content: "\f09c";
}
.fa-credit-card:before {
  content: "\f09d";
}
.fa-feed:before,
.fa-rss:before {
  content: "\f09e";
}
.fa-hdd-o:before {
  content: "\f0a0";
}
.fa-bullhorn:before {
  content: "\f0a1";
}
.fa-bell:before {
  content: "\f0f3";
}
.fa-certificate:before {
  content: "\f0a3";
}
.fa-hand-o-right:before {
  content: "\f0a4";
}
.fa-hand-o-left:before {
  content: "\f0a5";
}
.fa-hand-o-up:before {
  content: "\f0a6";
}
.fa-hand-o-down:before {
  content: "\f0a7";
}
.fa-arrow-circle-left:before {
  content: "\f0a8";
}
.fa-arrow-circle-right:before {
  content: "\f0a9";
}
.fa-arrow-circle-up:before {
  content: "\f0aa";
}
.fa-arrow-circle-down:before {
  content: "\f0ab";
}
.fa-globe:before {
  content: "\f0ac";
}
.fa-wrench:before {
  content: "\f0ad";
}
.fa-tasks:before {
  content: "\f0ae";
}
.fa-filter:before {
  content: "\f0b0";
}
.fa-briefcase:before {
  content: "\f0b1";
}
.fa-arrows-alt:before {
  content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
  content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
  content: "\f0c1";
}
.fa-cloud:before {
  content: "\f0c2";
}
.fa-flask:before {
  content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
  content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
  content: "\f0c5";
}
.fa-paperclip:before {
  content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
  content: "\f0c7";
}
.fa-square:before {
  content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
  content: "\f0c9";
}
.fa-list-ul:before {
  content: "\f0ca";
}
.fa-list-ol:before {
  content: "\f0cb";
}
.fa-strikethrough:before {
  content: "\f0cc";
}
.fa-underline:before {
  content: "\f0cd";
}
.fa-table:before {
  content: "\f0ce";
}
.fa-magic:before {
  content: "\f0d0";
}
.fa-truck:before {
  content: "\f0d1";
}
.fa-pinterest:before {
  content: "\f0d2";
}
.fa-pinterest-square:before {
  content: "\f0d3";
}
.fa-google-plus-square:before {
  content: "\f0d4";
}
.fa-google-plus:before {
  content: "\f0d5";
}
.fa-money:before {
  content: "\f0d6";
}
.fa-caret-down:before {
  content: "\f0d7";
}
.fa-caret-up:before {
  content: "\f0d8";
}
.fa-caret-left:before {
  content: "\f0d9";
}
.fa-caret-right:before {
  content: "\f0da";
}
.fa-columns:before {
  content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
  content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
  content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
  content: "\f0de";
}
.fa-envelope:before {
  content: "\f0e0";
}
.fa-linkedin:before {
  content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
  content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
  content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
  content: "\f0e4";
}
.fa-comment-o:before {
  content: "\f0e5";
}
.fa-comments-o:before {
  content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
  content: "\f0e7";
}
.fa-sitemap:before {
  content: "\f0e8";
}
.fa-umbrella:before {
  content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
  content: "\f0ea";
}
.fa-lightbulb-o:before {
  content: "\f0eb";
}
.fa-exchange:before {
  content: "\f0ec";
}
.fa-cloud-download:before {
  content: "\f0ed";
}
.fa-cloud-upload:before {
  content: "\f0ee";
}
.fa-user-md:before {
  content: "\f0f0";
}
.fa-stethoscope:before {
  content: "\f0f1";
}
.fa-suitcase:before {
  content: "\f0f2";
}
.fa-bell-o:before {
  content: "\f0a2";
}
.fa-coffee:before {
  content: "\f0f4";
}
.fa-cutlery:before {
  content: "\f0f5";
}
.fa-file-text-o:before {
  content: "\f0f6";
}
.fa-building-o:before {
  content: "\f0f7";
}
.fa-hospital-o:before {
  content: "\f0f8";
}
.fa-ambulance:before {
  content: "\f0f9";
}
.fa-medkit:before {
  content: "\f0fa";
}
.fa-fighter-jet:before {
  content: "\f0fb";
}
.fa-beer:before {
  content: "\f0fc";
}
.fa-h-square:before {
  content: "\f0fd";
}
.fa-plus-square:before {
  content: "\f0fe";
}
.fa-angle-double-left:before {
  content: "\f100";
}
.fa-angle-double-right:before {
  content: "\f101";
}
.fa-angle-double-up:before {
  content: "\f102";
}
.fa-angle-double-down:before {
  content: "\f103";
}
.fa-angle-left:before {
  content: "\f104";
}
.fa-angle-right:before {
  content: "\f105";
}
.fa-angle-up:before {
  content: "\f106";
}
.fa-angle-down:before {
  content: "\f107";
}
.fa-desktop:before {
  content: "\f108";
}
.fa-laptop:before {
  content: "\f109";
}
.fa-tablet:before {
  content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
  content: "\f10b";
}
.fa-circle-o:before {
  content: "\f10c";
}
.fa-quote-left:before {
  content: "\f10d";
}
.fa-quote-right:before {
  content: "\f10e";
}
.fa-spinner:before {
  content: "\f110";
}
.fa-circle:before {
  content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
  content: "\f112";
}
.fa-github-alt:before {
  content: "\f113";
}
.fa-folder-o:before {
  content: "\f114";
}
.fa-folder-open-o:before {
  content: "\f115";
}
.fa-smile-o:before {
  content: "\f118";
}
.fa-frown-o:before {
  content: "\f119";
}
.fa-meh-o:before {
  content: "\f11a";
}
.fa-gamepad:before {
  content: "\f11b";
}
.fa-keyboard-o:before {
  content: "\f11c";
}
.fa-flag-o:before {
  content: "\f11d";
}
.fa-flag-checkered:before {
  content: "\f11e";
}
.fa-terminal:before {
  content: "\f120";
}
.fa-code:before {
  content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
  content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
  content: "\f123";
}
.fa-location-arrow:before {
  content: "\f124";
}
.fa-crop:before {
  content: "\f125";
}
.fa-code-fork:before {
  content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
  content: "\f127";
}
.fa-question:before {
  content: "\f128";
}
.fa-info:before {
  content: "\f129";
}
.fa-exclamation:before {
  content: "\f12a";
}
.fa-superscript:before {
  content: "\f12b";
}
.fa-subscript:before {
  content: "\f12c";
}
.fa-eraser:before {
  content: "\f12d";
}
.fa-puzzle-piece:before {
  content: "\f12e";
}
.fa-microphone:before {
  content: "\f130";
}
.fa-microphone-slash:before {
  content: "\f131";
}
.fa-shield:before {
  content: "\f132";
}
.fa-calendar-o:before {
  content: "\f133";
}
.fa-fire-extinguisher:before {
  content: "\f134";
}
.fa-rocket:before {
  content: "\f135";
}
.fa-maxcdn:before {
  content: "\f136";
}
.fa-chevron-circle-left:before {
  content: "\f137";
}
.fa-chevron-circle-right:before {
  content: "\f138";
}
.fa-chevron-circle-up:before {
  content: "\f139";
}
.fa-chevron-circle-down:before {
  content: "\f13a";
}
.fa-html5:before {
  content: "\f13b";
}
.fa-css3:before {
  content: "\f13c";
}
.fa-anchor:before {
  content: "\f13d";
}
.fa-unlock-alt:before {
  content: "\f13e";
}
.fa-bullseye:before {
  content: "\f140";
}
.fa-ellipsis-h:before {
  content: "\f141";
}
.fa-ellipsis-v:before {
  content: "\f142";
}
.fa-rss-square:before {
  content: "\f143";
}
.fa-play-circle:before {
  content: "\f144";
}
.fa-ticket:before {
  content: "\f145";
}
.fa-minus-square:before {
  content: "\f146";
}
.fa-minus-square-o:before {
  content: "\f147";
}
.fa-level-up:before {
  content: "\f148";
}
.fa-level-down:before {
  content: "\f149";
}
.fa-check-square:before {
  content: "\f14a";
}
.fa-pencil-square:before {
  content: "\f14b";
}
.fa-external-link-square:before {
  content: "\f14c";
}
.fa-share-square:before {
  content: "\f14d";
}
.fa-compass:before {
  content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
  content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
  content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
  content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
  content: "\f153";
}
.fa-gbp:before {
  content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
  content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
  content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
  content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
  content: "\f158";
}
.fa-won:before,
.fa-krw:before {
  content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
  content: "\f15a";
}
.fa-file:before {
  content: "\f15b";
}
.fa-file-text:before {
  content: "\f15c";
}
.fa-sort-alpha-asc:before {
  content: "\f15d";
}
.fa-sort-alpha-desc:before {
  content: "\f15e";
}
.fa-sort-amount-asc:before {
  content: "\f160";
}
.fa-sort-amount-desc:before {
  content: "\f161";
}
.fa-sort-numeric-asc:before {
  content: "\f162";
}
.fa-sort-numeric-desc:before {
  content: "\f163";
}
.fa-thumbs-up:before {
  content: "\f164";
}
.fa-thumbs-down:before {
  content: "\f165";
}
.fa-youtube-square:before {
  content: "\f166";
}
.fa-youtube:before {
  content: "\f167";
}
.fa-xing:before {
  content: "\f168";
}
.fa-xing-square:before {
  content: "\f169";
}
.fa-youtube-play:before {
  content: "\f16a";
}
.fa-dropbox:before {
  content: "\f16b";
}
.fa-stack-overflow:before {
  content: "\f16c";
}
.fa-instagram:before {
  content: "\f16d";
}
.fa-flickr:before {
  content: "\f16e";
}
.fa-adn:before {
  content: "\f170";
}
.fa-bitbucket:before {
  content: "\f171";
}
.fa-bitbucket-square:before {
  content: "\f172";
}
.fa-tumblr:before {
  content: "\f173";
}
.fa-tumblr-square:before {
  content: "\f174";
}
.fa-long-arrow-down:before {
  content: "\f175";
}
.fa-long-arrow-up:before {
  content: "\f176";
}
.fa-long-arrow-left:before {
  content: "\f177";
}
.fa-long-arrow-right:before {
  content: "\f178";
}
.fa-apple:before {
  content: "\f179";
}
.fa-windows:before {
  content: "\f17a";
}
.fa-android:before {
  content: "\f17b";
}
.fa-linux:before {
  content: "\f17c";
}
.fa-dribbble:before {
  content: "\f17d";
}
.fa-skype:before {
  content: "\f17e";
}
.fa-foursquare:before {
  content: "\f180";
}
.fa-trello:before {
  content: "\f181";
}
.fa-female:before {
  content: "\f182";
}
.fa-male:before {
  content: "\f183";
}
.fa-gittip:before,
.fa-gratipay:before {
  content: "\f184";
}
.fa-sun-o:before {
  content: "\f185";
}
.fa-moon-o:before {
  content: "\f186";
}
.fa-archive:before {
  content: "\f187";
}
.fa-bug:before {
  content: "\f188";
}
.fa-vk:before {
  content: "\f189";
}
.fa-weibo:before {
  content: "\f18a";
}
.fa-renren:before {
  content: "\f18b";
}
.fa-pagelines:before {
  content: "\f18c";
}
.fa-stack-exchange:before {
  content: "\f18d";
}
.fa-arrow-circle-o-right:before {
  content: "\f18e";
}
.fa-arrow-circle-o-left:before {
  content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
  content: "\f191";
}
.fa-dot-circle-o:before {
  content: "\f192";
}
.fa-wheelchair:before {
  content: "\f193";
}
.fa-vimeo-square:before {
  content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
  content: "\f195";
}
.fa-plus-square-o:before {
  content: "\f196";
}
.fa-space-shuttle:before {
  content: "\f197";
}
.fa-slack:before {
  content: "\f198";
}
.fa-envelope-square:before {
  content: "\f199";
}
.fa-wordpress:before {
  content: "\f19a";
}
.fa-openid:before {
  content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
  content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
  content: "\f19d";
}
.fa-yahoo:before {
  content: "\f19e";
}
.fa-google:before {
  content: "\f1a0";
}
.fa-reddit:before {
  content: "\f1a1";
}
.fa-reddit-square:before {
  content: "\f1a2";
}
.fa-stumbleupon-circle:before {
  content: "\f1a3";
}
.fa-stumbleupon:before {
  content: "\f1a4";
}
.fa-delicious:before {
  content: "\f1a5";
}
.fa-digg:before {
  content: "\f1a6";
}
.fa-pied-piper-pp:before {
  content: "\f1a7";
}
.fa-pied-piper-alt:before {
  content: "\f1a8";
}
.fa-drupal:before {
  content: "\f1a9";
}
.fa-joomla:before {
  content: "\f1aa";
}
.fa-language:before {
  content: "\f1ab";
}
.fa-fax:before {
  content: "\f1ac";
}
.fa-building:before {
  content: "\f1ad";
}
.fa-child:before {
  content: "\f1ae";
}
.fa-paw:before {
  content: "\f1b0";
}
.fa-spoon:before {
  content: "\f1b1";
}
.fa-cube:before {
  content: "\f1b2";
}
.fa-cubes:before {
  content: "\f1b3";
}
.fa-behance:before {
  content: "\f1b4";
}
.fa-behance-square:before {
  content: "\f1b5";
}
.fa-steam:before {
  content: "\f1b6";
}
.fa-steam-square:before {
  content: "\f1b7";
}
.fa-recycle:before {
  content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
  content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
  content: "\f1ba";
}
.fa-tree:before {
  content: "\f1bb";
}
.fa-spotify:before {
  content: "\f1bc";
}
.fa-deviantart:before {
  content: "\f1bd";
}
.fa-soundcloud:before {
  content: "\f1be";
}
.fa-database:before {
  content: "\f1c0";
}
.fa-file-pdf-o:before {
  content: "\f1c1";
}
.fa-file-word-o:before {
  content: "\f1c2";
}
.fa-file-excel-o:before {
  content: "\f1c3";
}
.fa-file-powerpoint-o:before {
  content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
  content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
  content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
  content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
  content: "\f1c8";
}
.fa-file-code-o:before {
  content: "\f1c9";
}
.fa-vine:before {
  content: "\f1ca";
}
.fa-codepen:before {
  content: "\f1cb";
}
.fa-jsfiddle:before {
  content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
  content: "\f1cd";
}
.fa-circle-o-notch:before {
  content: "\f1ce";
}
.fa-ra:before,
.fa-resistance:before,
.fa-rebel:before {
  content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
  content: "\f1d1";
}
.fa-git-square:before {
  content: "\f1d2";
}
.fa-git:before {
  content: "\f1d3";
}
.fa-y-combinator-square:before,
.fa-yc-square:before,
.fa-hacker-news:before {
  content: "\f1d4";
}
.fa-tencent-weibo:before {
  content: "\f1d5";
}
.fa-qq:before {
  content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
  content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
  content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
  content: "\f1d9";
}
.fa-history:before {
  content: "\f1da";
}
.fa-circle-thin:before {
  content: "\f1db";
}
.fa-header:before {
  content: "\f1dc";
}
.fa-paragraph:before {
  content: "\f1dd";
}
.fa-sliders:before {
  content: "\f1de";
}
.fa-share-alt:before {
  content: "\f1e0";
}
.fa-share-alt-square:before {
  content: "\f1e1";
}
.fa-bomb:before {
  content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
  content: "\f1e3";
}
.fa-tty:before {
  content: "\f1e4";
}
.fa-binoculars:before {
  content: "\f1e5";
}
.fa-plug:before {
  content: "\f1e6";
}
.fa-slideshare:before {
  content: "\f1e7";
}
.fa-twitch:before {
  content: "\f1e8";
}
.fa-yelp:before {
  content: "\f1e9";
}
.fa-newspaper-o:before {
  content: "\f1ea";
}
.fa-wifi:before {
  content: "\f1eb";
}
.fa-calculator:before {
  content: "\f1ec";
}
.fa-paypal:before {
  content: "\f1ed";
}
.fa-google-wallet:before {
  content: "\f1ee";
}
.fa-cc-visa:before {
  content: "\f1f0";
}
.fa-cc-mastercard:before {
  content: "\f1f1";
}
.fa-cc-discover:before {
  content: "\f1f2";
}
.fa-cc-amex:before {
  content: "\f1f3";
}
.fa-cc-paypal:before {
  content: "\f1f4";
}
.fa-cc-stripe:before {
  content: "\f1f5";
}
.fa-bell-slash:before {
  content: "\f1f6";
}
.fa-bell-slash-o:before {
  content: "\f1f7";
}
.fa-trash:before {
  content: "\f1f8";
}
.fa-copyright:before {
  content: "\f1f9";
}
.fa-at:before {
  content: "\f1fa";
}
.fa-eyedropper:before {
  content: "\f1fb";
}
.fa-paint-brush:before {
  content: "\f1fc";
}
.fa-birthday-cake:before {
  content: "\f1fd";
}
.fa-area-chart:before {
  content: "\f1fe";
}
.fa-pie-chart:before {
  content: "\f200";
}
.fa-line-chart:before {
  content: "\f201";
}
.fa-lastfm:before {
  content: "\f202";
}
.fa-lastfm-square:before {
  content: "\f203";
}
.fa-toggle-off:before {
  content: "\f204";
}
.fa-toggle-on:before {
  content: "\f205";
}
.fa-bicycle:before {
  content: "\f206";
}
.fa-bus:before {
  content: "\f207";
}
.fa-ioxhost:before {
  content: "\f208";
}
.fa-angellist:before {
  content: "\f209";
}
.fa-cc:before {
  content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
  content: "\f20b";
}
.fa-meanpath:before {
  content: "\f20c";
}
.fa-buysellads:before {
  content: "\f20d";
}
.fa-connectdevelop:before {
  content: "\f20e";
}
.fa-dashcube:before {
  content: "\f210";
}
.fa-forumbee:before {
  content: "\f211";
}
.fa-leanpub:before {
  content: "\f212";
}
.fa-sellsy:before {
  content: "\f213";
}
.fa-shirtsinbulk:before {
  content: "\f214";
}
.fa-simplybuilt:before {
  content: "\f215";
}
.fa-skyatlas:before {
  content: "\f216";
}
.fa-cart-plus:before {
  content: "\f217";
}
.fa-cart-arrow-down:before {
  content: "\f218";
}
.fa-diamond:before {
  content: "\f219";
}
.fa-ship:before {
  content: "\f21a";
}
.fa-user-secret:before {
  content: "\f21b";
}
.fa-motorcycle:before {
  content: "\f21c";
}
.fa-street-view:before {
  content: "\f21d";
}
.fa-heartbeat:before {
  content: "\f21e";
}
.fa-venus:before {
  content: "\f221";
}
.fa-mars:before {
  content: "\f222";
}
.fa-mercury:before {
  content: "\f223";
}
.fa-intersex:before,
.fa-transgender:before {
  content: "\f224";
}
.fa-transgender-alt:before {
  content: "\f225";
}
.fa-venus-double:before {
  content: "\f226";
}
.fa-mars-double:before {
  content: "\f227";
}
.fa-venus-mars:before {
  content: "\f228";
}
.fa-mars-stroke:before {
  content: "\f229";
}
.fa-mars-stroke-v:before {
  content: "\f22a";
}
.fa-mars-stroke-h:before {
  content: "\f22b";
}
.fa-neuter:before {
  content: "\f22c";
}
.fa-genderless:before {
  content: "\f22d";
}
.fa-facebook-official:before {
  content: "\f230";
}
.fa-pinterest-p:before {
  content: "\f231";
}
.fa-whatsapp:before {
  content: "\f232";
}
.fa-server:before {
  content: "\f233";
}
.fa-user-plus:before {
  content: "\f234";
}
.fa-user-times:before {
  content: "\f235";
}
.fa-hotel:before,
.fa-bed:before {
  content: "\f236";
}
.fa-viacoin:before {
  content: "\f237";
}
.fa-train:before {
  content: "\f238";
}
.fa-subway:before {
  content: "\f239";
}
.fa-medium:before {
  content: "\f23a";
}
.fa-yc:before,
.fa-y-combinator:before {
  content: "\f23b";
}
.fa-optin-monster:before {
  content: "\f23c";
}
.fa-opencart:before {
  content: "\f23d";
}
.fa-expeditedssl:before {
  content: "\f23e";
}
.fa-battery-4:before,
.fa-battery:before,
.fa-battery-full:before {
  content: "\f240";
}
.fa-battery-3:before,
.fa-battery-three-quarters:before {
  content: "\f241";
}
.fa-battery-2:before,
.fa-battery-half:before {
  content: "\f242";
}
.fa-battery-1:before,
.fa-battery-quarter:before {
  content: "\f243";
}
.fa-battery-0:before,
.fa-battery-empty:before {
  content: "\f244";
}
.fa-mouse-pointer:before {
  content: "\f245";
}
.fa-i-cursor:before {
  content: "\f246";
}
.fa-object-group:before {
  content: "\f247";
}
.fa-object-ungroup:before {
  content: "\f248";
}
.fa-sticky-note:before {
  content: "\f249";
}
.fa-sticky-note-o:before {
  content: "\f24a";
}
.fa-cc-jcb:before {
  content: "\f24b";
}
.fa-cc-diners-club:before {
  content: "\f24c";
}
.fa-clone:before {
  content: "\f24d";
}
.fa-balance-scale:before {
  content: "\f24e";
}
.fa-hourglass-o:before {
  content: "\f250";
}
.fa-hourglass-1:before,
.fa-hourglass-start:before {
  content: "\f251";
}
.fa-hourglass-2:before,
.fa-hourglass-half:before {
  content: "\f252";
}
.fa-hourglass-3:before,
.fa-hourglass-end:before {
  content: "\f253";
}
.fa-hourglass:before {
  content: "\f254";
}
.fa-hand-grab-o:before,
.fa-hand-rock-o:before {
  content: "\f255";
}
.fa-hand-stop-o:before,
.fa-hand-paper-o:before {
  content: "\f256";
}
.fa-hand-scissors-o:before {
  content: "\f257";
}
.fa-hand-lizard-o:before {
  content: "\f258";
}
.fa-hand-spock-o:before {
  content: "\f259";
}
.fa-hand-pointer-o:before {
  content: "\f25a";
}
.fa-hand-peace-o:before {
  content: "\f25b";
}
.fa-trademark:before {
  content: "\f25c";
}
.fa-registered:before {
  content: "\f25d";
}
.fa-creative-commons:before {
  content: "\f25e";
}
.fa-gg:before {
  content: "\f260";
}
.fa-gg-circle:before {
  content: "\f261";
}
.fa-tripadvisor:before {
  content: "\f262";
}
.fa-odnoklassniki:before {
  content: "\f263";
}
.fa-odnoklassniki-square:before {
  content: "\f264";
}
.fa-get-pocket:before {
  content: "\f265";
}
.fa-wikipedia-w:before {
  content: "\f266";
}
.fa-safari:before {
  content: "\f267";
}
.fa-chrome:before {
  content: "\f268";
}
.fa-firefox:before {
  content: "\f269";
}
.fa-opera:before {
  content: "\f26a";
}
.fa-internet-explorer:before {
  content: "\f26b";
}
.fa-tv:before,
.fa-television:before {
  content: "\f26c";
}
.fa-contao:before {
  content: "\f26d";
}
.fa-500px:before {
  content: "\f26e";
}
.fa-amazon:before {
  content: "\f270";
}
.fa-calendar-plus-o:before {
  content: "\f271";
}
.fa-calendar-minus-o:before {
  content: "\f272";
}
.fa-calendar-times-o:before {
  content: "\f273";
}
.fa-calendar-check-o:before {
  content: "\f274";
}
.fa-industry:before {
  content: "\f275";
}
.fa-map-pin:before {
  content: "\f276";
}
.fa-map-signs:before {
  content: "\f277";
}
.fa-map-o:before {
  content: "\f278";
}
.fa-map:before {
  content: "\f279";
}
.fa-commenting:before {
  content: "\f27a";
}
.fa-commenting-o:before {
  content: "\f27b";
}
.fa-houzz:before {
  content: "\f27c";
}
.fa-vimeo:before {
  content: "\f27d";
}
.fa-black-tie:before {
  content: "\f27e";
}
.fa-fonticons:before {
  content: "\f280";
}
.fa-reddit-alien:before {
  content: "\f281";
}
.fa-edge:before {
  content: "\f282";
}
.fa-credit-card-alt:before {
  content: "\f283";
}
.fa-codiepie:before {
  content: "\f284";
}
.fa-modx:before {
  content: "\f285";
}
.fa-fort-awesome:before {
  content: "\f286";
}
.fa-usb:before {
  content: "\f287";
}
.fa-product-hunt:before {
  content: "\f288";
}
.fa-mixcloud:before {
  content: "\f289";
}
.fa-scribd:before {
  content: "\f28a";
}
.fa-pause-circle:before {
  content: "\f28b";
}
.fa-pause-circle-o:before {
  content: "\f28c";
}
.fa-stop-circle:before {
  content: "\f28d";
}
.fa-stop-circle-o:before {
  content: "\f28e";
}
.fa-shopping-bag:before {
  content: "\f290";
}
.fa-shopping-basket:before {
  content: "\f291";
}
.fa-hashtag:before {
  content: "\f292";
}
.fa-bluetooth:before {
  content: "\f293";
}
.fa-bluetooth-b:before {
  content: "\f294";
}
.fa-percent:before {
  content: "\f295";
}
.fa-gitlab:before {
  content: "\f296";
}
.fa-wpbeginner:before {
  content: "\f297";
}
.fa-wpforms:before {
  content: "\f298";
}
.fa-envira:before {
  content: "\f299";
}
.fa-universal-access:before {
  content: "\f29a";
}
.fa-wheelchair-alt:before {
  content: "\f29b";
}
.fa-question-circle-o:before {
  content: "\f29c";
}
.fa-blind:before {
  content: "\f29d";
}
.fa-audio-description:before {
  content: "\f29e";
}
.fa-volume-control-phone:before {
  content: "\f2a0";
}
.fa-braille:before {
  content: "\f2a1";
}
.fa-assistive-listening-systems:before {
  content: "\f2a2";
}
.fa-asl-interpreting:before,
.fa-american-sign-language-interpreting:before {
  content: "\f2a3";
}
.fa-deafness:before,
.fa-hard-of-hearing:before,
.fa-deaf:before {
  content: "\f2a4";
}
.fa-glide:before {
  content: "\f2a5";
}
.fa-glide-g:before {
  content: "\f2a6";
}
.fa-signing:before,
.fa-sign-language:before {
  content: "\f2a7";
}
.fa-low-vision:before {
  content: "\f2a8";
}
.fa-viadeo:before {
  content: "\f2a9";
}
.fa-viadeo-square:before {
  content: "\f2aa";
}
.fa-snapchat:before {
  content: "\f2ab";
}
.fa-snapchat-ghost:before {
  content: "\f2ac";
}
.fa-snapchat-square:before {
  content: "\f2ad";
}
.fa-pied-piper:before {
  content: "\f2ae";
}
.fa-first-order:before {
  content: "\f2b0";
}
.fa-yoast:before {
  content: "\f2b1";
}
.fa-themeisle:before {
  content: "\f2b2";
}
.fa-google-plus-circle:before,
.fa-google-plus-official:before {
  content: "\f2b3";
}
.fa-fa:before,
.fa-font-awesome:before {
  content: "\f2b4";
}
.fa-handshake-o:before {
  content: "\f2b5";
}
.fa-envelope-open:before {
  content: "\f2b6";
}
.fa-envelope-open-o:before {
  content: "\f2b7";
}
.fa-linode:before {
  content: "\f2b8";
}
.fa-address-book:before {
  content: "\f2b9";
}
.fa-address-book-o:before {
  content: "\f2ba";
}
.fa-vcard:before,
.fa-address-card:before {
  content: "\f2bb";
}
.fa-vcard-o:before,
.fa-address-card-o:before {
  content: "\f2bc";
}
.fa-user-circle:before {
  content: "\f2bd";
}
.fa-user-circle-o:before {
  content: "\f2be";
}
.fa-user-o:before {
  content: "\f2c0";
}
.fa-id-badge:before {
  content: "\f2c1";
}
.fa-drivers-license:before,
.fa-id-card:before {
  content: "\f2c2";
}
.fa-drivers-license-o:before,
.fa-id-card-o:before {
  content: "\f2c3";
}
.fa-quora:before {
  content: "\f2c4";
}
.fa-free-code-camp:before {
  content: "\f2c5";
}
.fa-telegram:before {
  content: "\f2c6";
}
.fa-thermometer-4:before,
.fa-thermometer:before,
.fa-thermometer-full:before {
  content: "\f2c7";
}
.fa-thermometer-3:before,
.fa-thermometer-three-quarters:before {
  content: "\f2c8";
}
.fa-thermometer-2:before,
.fa-thermometer-half:before {
  content: "\f2c9";
}
.fa-thermometer-1:before,
.fa-thermometer-quarter:before {
  content: "\f2ca";
}
.fa-thermometer-0:before,
.fa-thermometer-empty:before {
  content: "\f2cb";
}
.fa-shower:before {
  content: "\f2cc";
}
.fa-bathtub:before,
.fa-s15:before,
.fa-bath:before {
  content: "\f2cd";
}
.fa-podcast:before {
  content: "\f2ce";
}
.fa-window-maximize:before {
  content: "\f2d0";
}
.fa-window-minimize:before {
  content: "\f2d1";
}
.fa-window-restore:before {
  content: "\f2d2";
}
.fa-times-rectangle:before,
.fa-window-close:before {
  content: "\f2d3";
}
.fa-times-rectangle-o:before,
.fa-window-close-o:before {
  content: "\f2d4";
}
.fa-bandcamp:before {
  content: "\f2d5";
}
.fa-grav:before {
  content: "\f2d6";
}
.fa-etsy:before {
  content: "\f2d7";
}
.fa-imdb:before {
  content: "\f2d8";
}
.fa-ravelry:before {
  content: "\f2d9";
}
.fa-eercast:before {
  content: "\f2da";
}
.fa-microchip:before {
  content: "\f2db";
}
.fa-snowflake-o:before {
  content: "\f2dc";
}
.fa-superpowers:before {
  content: "\f2dd";
}
.fa-wpexplorer:before {
  content: "\f2de";
}
.fa-meetup:before {
  content: "\f2e0";
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
/*!
*
* IPython base
*
*/
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
code {
  color: #000;
}
pre {
  font-size: inherit;
  line-height: inherit;
}
label {
  font-weight: normal;
}
/* Make the page background atleast 100% the height of the view port */
/* Make the page itself atleast 70% the height of the view port */
.border-box-sizing {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.corner-all {
  border-radius: 2px;
}
.no-padding {
  padding: 0px;
}
/* Flexible box model classes */
/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
/* This file is a compatability layer.  It allows the usage of flexible box 
model layouts accross multiple browsers, including older browsers.  The newest,
universal implementation of the flexible box model is used when available (see
`Modern browsers` comments below).  Browsers that are known to implement this 
new spec completely include:

    Firefox 28.0+
    Chrome 29.0+
    Internet Explorer 11+ 
    Opera 17.0+

Browsers not listed, including Safari, are supported via the styling under the
`Old browsers` comments below.
*/
.hbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
.hbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.vbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.vbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.hbox.reverse,
.vbox.reverse,
.reverse {
  /* Old browsers */
  -webkit-box-direction: reverse;
  -moz-box-direction: reverse;
  box-direction: reverse;
  /* Modern browsers */
  flex-direction: row-reverse;
}
.hbox.box-flex0,
.vbox.box-flex0,
.box-flex0 {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
  width: auto;
}
.hbox.box-flex1,
.vbox.box-flex1,
.box-flex1 {
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex,
.vbox.box-flex,
.box-flex {
  /* Old browsers */
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex2,
.vbox.box-flex2,
.box-flex2 {
  /* Old browsers */
  -webkit-box-flex: 2;
  -moz-box-flex: 2;
  box-flex: 2;
  /* Modern browsers */
  flex: 2;
}
.box-group1 {
  /*  Deprecated */
  -webkit-box-flex-group: 1;
  -moz-box-flex-group: 1;
  box-flex-group: 1;
}
.box-group2 {
  /* Deprecated */
  -webkit-box-flex-group: 2;
  -moz-box-flex-group: 2;
  box-flex-group: 2;
}
.hbox.start,
.vbox.start,
.start {
  /* Old browsers */
  -webkit-box-pack: start;
  -moz-box-pack: start;
  box-pack: start;
  /* Modern browsers */
  justify-content: flex-start;
}
.hbox.end,
.vbox.end,
.end {
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
}
.hbox.center,
.vbox.center,
.center {
  /* Old browsers */
  -webkit-box-pack: center;
  -moz-box-pack: center;
  box-pack: center;
  /* Modern browsers */
  justify-content: center;
}
.hbox.baseline,
.vbox.baseline,
.baseline {
  /* Old browsers */
  -webkit-box-pack: baseline;
  -moz-box-pack: baseline;
  box-pack: baseline;
  /* Modern browsers */
  justify-content: baseline;
}
.hbox.stretch,
.vbox.stretch,
.stretch {
  /* Old browsers */
  -webkit-box-pack: stretch;
  -moz-box-pack: stretch;
  box-pack: stretch;
  /* Modern browsers */
  justify-content: stretch;
}
.hbox.align-start,
.vbox.align-start,
.align-start {
  /* Old browsers */
  -webkit-box-align: start;
  -moz-box-align: start;
  box-align: start;
  /* Modern browsers */
  align-items: flex-start;
}
.hbox.align-end,
.vbox.align-end,
.align-end {
  /* Old browsers */
  -webkit-box-align: end;
  -moz-box-align: end;
  box-align: end;
  /* Modern browsers */
  align-items: flex-end;
}
.hbox.align-center,
.vbox.align-center,
.align-center {
  /* Old browsers */
  -webkit-box-align: center;
  -moz-box-align: center;
  box-align: center;
  /* Modern browsers */
  align-items: center;
}
.hbox.align-baseline,
.vbox.align-baseline,
.align-baseline {
  /* Old browsers */
  -webkit-box-align: baseline;
  -moz-box-align: baseline;
  box-align: baseline;
  /* Modern browsers */
  align-items: baseline;
}
.hbox.align-stretch,
.vbox.align-stretch,
.align-stretch {
  /* Old browsers */
  -webkit-box-align: stretch;
  -moz-box-align: stretch;
  box-align: stretch;
  /* Modern browsers */
  align-items: stretch;
}
div.error {
  margin: 2em;
  text-align: center;
}
div.error > h1 {
  font-size: 500%;
  line-height: normal;
}
div.error > p {
  font-size: 200%;
  line-height: normal;
}
div.traceback-wrapper {
  text-align: left;
  max-width: 800px;
  margin: auto;
}
div.traceback-wrapper pre.traceback {
  max-height: 600px;
  overflow: auto;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
body {
  background-color: #fff;
  /* This makes sure that the body covers the entire window and needs to
       be in a different element than the display: box in wrapper below */
  position: absolute;
  left: 0px;
  right: 0px;
  top: 0px;
  bottom: 0px;
  overflow: visible;
}
body > #header {
  /* Initially hidden to prevent FLOUC */
  display: none;
  background-color: #fff;
  /* Display over codemirror */
  position: relative;
  z-index: 100;
}
body > #header #header-container {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  padding: 5px;
  padding-bottom: 5px;
  padding-top: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
body > #header .header-bar {
  width: 100%;
  height: 1px;
  background: #e7e7e7;
  margin-bottom: -1px;
}
@media print {
  body > #header {
    display: none !important;
  }
}
#header-spacer {
  width: 100%;
  visibility: hidden;
}
@media print {
  #header-spacer {
    display: none;
  }
}
#ipython_notebook {
  padding-left: 0px;
  padding-top: 1px;
  padding-bottom: 1px;
}
[dir="rtl"] #ipython_notebook {
  margin-right: 10px;
  margin-left: 0;
}
[dir="rtl"] #ipython_notebook.pull-left {
  float: right !important;
  float: right;
}
.flex-spacer {
  flex: 1;
}
#noscript {
  width: auto;
  padding-top: 16px;
  padding-bottom: 16px;
  text-align: center;
  font-size: 22px;
  color: red;
  font-weight: bold;
}
#ipython_notebook img {
  height: 28px;
}
#site {
  width: 100%;
  display: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  overflow: auto;
}
@media print {
  #site {
    height: auto !important;
  }
}
/* Smaller buttons */
.ui-button .ui-button-text {
  padding: 0.2em 0.8em;
  font-size: 77%;
}
input.ui-button {
  padding: 0.3em 0.9em;
}
span#kernel_logo_widget {
  margin: 0 10px;
}
span#login_widget {
  float: right;
}
[dir="rtl"] span#login_widget {
  float: left;
}
span#login_widget > .button,
#logout {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button:focus,
#logout:focus,
span#login_widget > .button.focus,
#logout.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
span#login_widget > .button:hover,
#logout:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active:hover,
#logout:active:hover,
span#login_widget > .button.active:hover,
#logout.active:hover,
.open > .dropdown-togglespan#login_widget > .button:hover,
.open > .dropdown-toggle#logout:hover,
span#login_widget > .button:active:focus,
#logout:active:focus,
span#login_widget > .button.active:focus,
#logout.active:focus,
.open > .dropdown-togglespan#login_widget > .button:focus,
.open > .dropdown-toggle#logout:focus,
span#login_widget > .button:active.focus,
#logout:active.focus,
span#login_widget > .button.active.focus,
#logout.active.focus,
.open > .dropdown-togglespan#login_widget > .button.focus,
.open > .dropdown-toggle#logout.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  background-image: none;
}
span#login_widget > .button.disabled:hover,
#logout.disabled:hover,
span#login_widget > .button[disabled]:hover,
#logout[disabled]:hover,
fieldset[disabled] span#login_widget > .button:hover,
fieldset[disabled] #logout:hover,
span#login_widget > .button.disabled:focus,
#logout.disabled:focus,
span#login_widget > .button[disabled]:focus,
#logout[disabled]:focus,
fieldset[disabled] span#login_widget > .button:focus,
fieldset[disabled] #logout:focus,
span#login_widget > .button.disabled.focus,
#logout.disabled.focus,
span#login_widget > .button[disabled].focus,
#logout[disabled].focus,
fieldset[disabled] span#login_widget > .button.focus,
fieldset[disabled] #logout.focus {
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button .badge,
#logout .badge {
  color: #fff;
  background-color: #333;
}
.nav-header {
  text-transform: none;
}
#header > span {
  margin-top: 10px;
}
.modal_stretch .modal-dialog {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 80vh;
}
.modal_stretch .modal-dialog .modal-body {
  max-height: calc(100vh - 200px);
  overflow: auto;
  flex: 1;
}
.modal-header {
  cursor: move;
}
@media (min-width: 768px) {
  .modal .modal-dialog {
    width: 700px;
  }
}
@media (min-width: 768px) {
  select.form-control {
    margin-left: 12px;
    margin-right: 12px;
  }
}
/*!
*
* IPython auth
*
*/
.center-nav {
  display: inline-block;
  margin-bottom: -4px;
}
[dir="rtl"] .center-nav form.pull-left {
  float: right !important;
  float: right;
}
[dir="rtl"] .center-nav .navbar-text {
  float: right;
}
[dir="rtl"] .navbar-inner {
  text-align: right;
}
[dir="rtl"] div.text-left {
  text-align: right;
}
/*!
*
* IPython tree view
*
*/
/* We need an invisible input field on top of the sentense*/
/* "Drag file onto the list ..." */
.alternate_upload {
  background-color: none;
  display: inline;
}
.alternate_upload.form {
  padding: 0;
  margin: 0;
}
.alternate_upload input.fileinput {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  cursor: pointer;
  opacity: 0;
  z-index: 2;
}
.alternate_upload .btn-xs > input.fileinput {
  margin: -1px -5px;
}
.alternate_upload .btn-upload {
  position: relative;
  height: 22px;
}
::-webkit-file-upload-button {
  cursor: pointer;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
ul#tabs {
  margin-bottom: 4px;
}
ul#tabs a {
  padding-top: 6px;
  padding-bottom: 4px;
}
[dir="rtl"] ul#tabs.nav-tabs > li {
  float: right;
}
[dir="rtl"] ul#tabs.nav.nav-tabs {
  padding-right: 0;
}
ul.breadcrumb a:focus,
ul.breadcrumb a:hover {
  text-decoration: none;
}
ul.breadcrumb i.icon-home {
  font-size: 16px;
  margin-right: 4px;
}
ul.breadcrumb span {
  color: #5e5e5e;
}
.list_toolbar {
  padding: 4px 0 4px 0;
  vertical-align: middle;
}
.list_toolbar .tree-buttons {
  padding-top: 1px;
}
[dir="rtl"] .list_toolbar .tree-buttons .pull-right {
  float: left !important;
  float: left;
}
[dir="rtl"] .list_toolbar .col-sm-4,
[dir="rtl"] .list_toolbar .col-sm-8 {
  float: right;
}
.dynamic-buttons {
  padding-top: 3px;
  display: inline-block;
}
.list_toolbar [class*="span"] {
  min-height: 24px;
}
.list_header {
  font-weight: bold;
  background-color: #EEE;
}
.list_placeholder {
  font-weight: bold;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
}
.list_container {
  margin-top: 4px;
  margin-bottom: 20px;
  border: 1px solid #ddd;
  border-radius: 2px;
}
.list_container > div {
  border-bottom: 1px solid #ddd;
}
.list_container > div:hover .list-item {
  background-color: red;
}
.list_container > div:last-child {
  border: none;
}
.list_item:hover .list_item {
  background-color: #ddd;
}
.list_item a {
  text-decoration: none;
}
.list_item:hover {
  background-color: #fafafa;
}
.list_header > div,
.list_item > div {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
.list_header > div input,
.list_item > div input {
  margin-right: 7px;
  margin-left: 14px;
  vertical-align: text-bottom;
  line-height: 22px;
  position: relative;
  top: -1px;
}
.list_header > div .item_link,
.list_item > div .item_link {
  margin-left: -1px;
  vertical-align: baseline;
  line-height: 22px;
}
[dir="rtl"] .list_item > div input {
  margin-right: 0;
}
.new-file input[type=checkbox] {
  visibility: hidden;
}
.item_name {
  line-height: 22px;
  height: 24px;
}
.item_icon {
  font-size: 14px;
  color: #5e5e5e;
  margin-right: 7px;
  margin-left: 7px;
  line-height: 22px;
  vertical-align: baseline;
}
.item_modified {
  margin-right: 7px;
  margin-left: 7px;
}
[dir="rtl"] .item_modified.pull-right {
  float: left !important;
  float: left;
}
.item_buttons {
  line-height: 1em;
  margin-left: -5px;
}
.item_buttons .btn,
.item_buttons .btn-group,
.item_buttons .input-group {
  float: left;
}
.item_buttons > .btn,
.item_buttons > .btn-group,
.item_buttons > .input-group {
  margin-left: 5px;
}
.item_buttons .btn {
  min-width: 13ex;
}
.item_buttons .running-indicator {
  padding-top: 4px;
  color: #5cb85c;
}
.item_buttons .kernel-name {
  padding-top: 4px;
  color: #5bc0de;
  margin-right: 7px;
  float: left;
}
[dir="rtl"] .item_buttons.pull-right {
  float: left !important;
  float: left;
}
[dir="rtl"] .item_buttons .kernel-name {
  margin-left: 7px;
  float: right;
}
.toolbar_info {
  height: 24px;
  line-height: 24px;
}
.list_item input:not([type=checkbox]) {
  padding-top: 3px;
  padding-bottom: 3px;
  height: 22px;
  line-height: 14px;
  margin: 0px;
}
.highlight_text {
  color: blue;
}
#project_name {
  display: inline-block;
  padding-left: 7px;
  margin-left: -2px;
}
#project_name > .breadcrumb {
  padding: 0px;
  margin-bottom: 0px;
  background-color: transparent;
  font-weight: bold;
}
.sort_button {
  display: inline-block;
  padding-left: 7px;
}
[dir="rtl"] .sort_button.pull-right {
  float: left !important;
  float: left;
}
#tree-selector {
  padding-right: 0px;
}
#button-select-all {
  min-width: 50px;
}
[dir="rtl"] #button-select-all.btn {
  float: right ;
}
#select-all {
  margin-left: 7px;
  margin-right: 2px;
  margin-top: 2px;
  height: 16px;
}
[dir="rtl"] #select-all.pull-left {
  float: right !important;
  float: right;
}
.menu_icon {
  margin-right: 2px;
}
.tab-content .row {
  margin-left: 0px;
  margin-right: 0px;
}
.folder_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f114";
}
.folder_icon:before.fa-pull-left {
  margin-right: .3em;
}
.folder_icon:before.fa-pull-right {
  margin-left: .3em;
}
.folder_icon:before.pull-left {
  margin-right: .3em;
}
.folder_icon:before.pull-right {
  margin-left: .3em;
}
.notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
}
.notebook_icon:before.fa-pull-left {
  margin-right: .3em;
}
.notebook_icon:before.fa-pull-right {
  margin-left: .3em;
}
.notebook_icon:before.pull-left {
  margin-right: .3em;
}
.notebook_icon:before.pull-right {
  margin-left: .3em;
}
.running_notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
  color: #5cb85c;
}
.running_notebook_icon:before.fa-pull-left {
  margin-right: .3em;
}
.running_notebook_icon:before.fa-pull-right {
  margin-left: .3em;
}
.running_notebook_icon:before.pull-left {
  margin-right: .3em;
}
.running_notebook_icon:before.pull-right {
  margin-left: .3em;
}
.file_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f016";
  position: relative;
  top: -2px;
}
.file_icon:before.fa-pull-left {
  margin-right: .3em;
}
.file_icon:before.fa-pull-right {
  margin-left: .3em;
}
.file_icon:before.pull-left {
  margin-right: .3em;
}
.file_icon:before.pull-right {
  margin-left: .3em;
}
#notebook_toolbar .pull-right {
  padding-top: 0px;
  margin-right: -1px;
}
ul#new-menu {
  left: auto;
  right: 0;
}
#new-menu .dropdown-header {
  font-size: 10px;
  border-bottom: 1px solid #e5e5e5;
  padding: 0 0 3px;
  margin: -3px 20px 0;
}
.kernel-menu-icon {
  padding-right: 12px;
  width: 24px;
  content: "\f096";
}
.kernel-menu-icon:before {
  content: "\f096";
}
.kernel-menu-icon-current:before {
  content: "\f00c";
}
#tab_content {
  padding-top: 20px;
}
#running .panel-group .panel {
  margin-top: 3px;
  margin-bottom: 1em;
}
#running .panel-group .panel .panel-heading {
  background-color: #EEE;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
#running .panel-group .panel .panel-heading a:focus,
#running .panel-group .panel .panel-heading a:hover {
  text-decoration: none;
}
#running .panel-group .panel .panel-body {
  padding: 0px;
}
#running .panel-group .panel .panel-body .list_container {
  margin-top: 0px;
  margin-bottom: 0px;
  border: 0px;
  border-radius: 0px;
}
#running .panel-group .panel .panel-body .list_container .list_item {
  border-bottom: 1px solid #ddd;
}
#running .panel-group .panel .panel-body .list_container .list_item:last-child {
  border-bottom: 0px;
}
.delete-button {
  display: none;
}
.duplicate-button {
  display: none;
}
.rename-button {
  display: none;
}
.move-button {
  display: none;
}
.download-button {
  display: none;
}
.shutdown-button {
  display: none;
}
.dynamic-instructions {
  display: inline-block;
  padding-top: 4px;
}
/*!
*
* IPython text editor webapp
*
*/
.selected-keymap i.fa {
  padding: 0px 5px;
}
.selected-keymap i.fa:before {
  content: "\f00c";
}
#mode-menu {
  overflow: auto;
  max-height: 20em;
}
.edit_app #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.edit_app #menubar .navbar {
  /* Use a negative 1 bottom margin, so the border overlaps the border of the
    header */
  margin-bottom: -1px;
}
.dirty-indicator {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator.fa-pull-left {
  margin-right: .3em;
}
.dirty-indicator.fa-pull-right {
  margin-left: .3em;
}
.dirty-indicator.pull-left {
  margin-right: .3em;
}
.dirty-indicator.pull-right {
  margin-left: .3em;
}
.dirty-indicator-dirty {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-dirty.fa-pull-left {
  margin-right: .3em;
}
.dirty-indicator-dirty.fa-pull-right {
  margin-left: .3em;
}
.dirty-indicator-dirty.pull-left {
  margin-right: .3em;
}
.dirty-indicator-dirty.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-clean.fa-pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean.fa-pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f00c";
}
.dirty-indicator-clean:before.fa-pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean:before.fa-pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean:before.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean:before.pull-right {
  margin-left: .3em;
}
#filename {
  font-size: 16pt;
  display: table;
  padding: 0px 5px;
}
#current-mode {
  padding-left: 5px;
  padding-right: 5px;
}
#texteditor-backdrop {
  padding-top: 20px;
  padding-bottom: 20px;
}
@media not print {
  #texteditor-backdrop {
    background-color: #EEE;
  }
}
@media print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container {
    padding: 0px;
    background-color: #fff;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
.CodeMirror-dialog {
  background-color: #fff;
}
/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI escape sequences */
/* The color values are a mix of
   http://www.xcolors.net/dl/baskerville-ivorylight and
   http://www.xcolors.net/dl/euphrasia */
.ansi-black-fg {
  color: #3E424D;
}
.ansi-black-bg {
  background-color: #3E424D;
}
.ansi-black-intense-fg {
  color: #282C36;
}
.ansi-black-intense-bg {
  background-color: #282C36;
}
.ansi-red-fg {
  color: #E75C58;
}
.ansi-red-bg {
  background-color: #E75C58;
}
.ansi-red-intense-fg {
  color: #B22B31;
}
.ansi-red-intense-bg {
  background-color: #B22B31;
}
.ansi-green-fg {
  color: #00A250;
}
.ansi-green-bg {
  background-color: #00A250;
}
.ansi-green-intense-fg {
  color: #007427;
}
.ansi-green-intense-bg {
  background-color: #007427;
}
.ansi-yellow-fg {
  color: #DDB62B;
}
.ansi-yellow-bg {
  background-color: #DDB62B;
}
.ansi-yellow-intense-fg {
  color: #B27D12;
}
.ansi-yellow-intense-bg {
  background-color: #B27D12;
}
.ansi-blue-fg {
  color: #208FFB;
}
.ansi-blue-bg {
  background-color: #208FFB;
}
.ansi-blue-intense-fg {
  color: #0065CA;
}
.ansi-blue-intense-bg {
  background-color: #0065CA;
}
.ansi-magenta-fg {
  color: #D160C4;
}
.ansi-magenta-bg {
  background-color: #D160C4;
}
.ansi-magenta-intense-fg {
  color: #A03196;
}
.ansi-magenta-intense-bg {
  background-color: #A03196;
}
.ansi-cyan-fg {
  color: #60C6C8;
}
.ansi-cyan-bg {
  background-color: #60C6C8;
}
.ansi-cyan-intense-fg {
  color: #258F8F;
}
.ansi-cyan-intense-bg {
  background-color: #258F8F;
}
.ansi-white-fg {
  color: #C5C1B4;
}
.ansi-white-bg {
  background-color: #C5C1B4;
}
.ansi-white-intense-fg {
  color: #A1A6B2;
}
.ansi-white-intense-bg {
  background-color: #A1A6B2;
}
.ansi-default-inverse-fg {
  color: #FFFFFF;
}
.ansi-default-inverse-bg {
  background-color: #000000;
}
.ansi-bold {
  font-weight: bold;
}
.ansi-underline {
  text-decoration: underline;
}
/* The following styles are deprecated an will be removed in a future version */
.ansibold {
  font-weight: bold;
}
.ansi-inverse {
  outline: 0.5px dotted;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
  color: black;
}
.ansired {
  color: darkred;
}
.ansigreen {
  color: darkgreen;
}
.ansiyellow {
  color: #c4a000;
}
.ansiblue {
  color: darkblue;
}
.ansipurple {
  color: darkviolet;
}
.ansicyan {
  color: steelblue;
}
.ansigray {
  color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
  background-color: black;
}
.ansibgred {
  background-color: red;
}
.ansibggreen {
  background-color: green;
}
.ansibgyellow {
  background-color: yellow;
}
.ansibgblue {
  background-color: blue;
}
.ansibgpurple {
  background-color: magenta;
}
.ansibgcyan {
  background-color: cyan;
}
.ansibggray {
  background-color: gray;
}
div.cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  border-radius: 2px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  width: 100%;
  padding: 5px;
  /* This acts as a spacer between cells, that is outside the border */
  margin: 0px;
  outline: none;
  position: relative;
  overflow: visible;
}
div.cell:before {
  position: absolute;
  display: block;
  top: -1px;
  left: -1px;
  width: 5px;
  height: calc(100% +  2px);
  content: '';
  background: transparent;
}
div.cell.jupyter-soft-selected {
  border-left-color: #E3F2FD;
  border-left-width: 1px;
  padding-left: 5px;
  border-right-color: #E3F2FD;
  border-right-width: 1px;
  background: #E3F2FD;
}
@media print {
  div.cell.jupyter-soft-selected {
    border-color: transparent;
  }
}
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
  border-color: #ababab;
}
div.cell.selected:before,
div.cell.selected.jupyter-soft-selected:before {
  position: absolute;
  display: block;
  top: -1px;
  left: -1px;
  width: 5px;
  height: calc(100% +  2px);
  content: '';
  background: #42A5F5;
}
@media print {
  div.cell.selected,
  div.cell.selected.jupyter-soft-selected {
    border-color: transparent;
  }
}
.edit_mode div.cell.selected {
  border-color: #66BB6A;
}
.edit_mode div.cell.selected:before {
  position: absolute;
  display: block;
  top: -1px;
  left: -1px;
  width: 5px;
  height: calc(100% +  2px);
  content: '';
  background: #66BB6A;
}
@media print {
  .edit_mode div.cell.selected {
    border-color: transparent;
  }
}
.prompt {
  /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
  min-width: 14ex;
  /* This padding is tuned to match the padding on the CodeMirror editor. */
  padding: 0.4em;
  margin: 0px;
  font-family: monospace;
  text-align: right;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
  /* Don't highlight prompt number selection */
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /* Use default cursor */
  cursor: default;
}
@media (max-width: 540px) {
  .prompt {
    text-align: left;
  }
}
div.inner_cell {
  min-width: 0;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
  border: 1px solid #cfcfcf;
  border-radius: 2px;
  background: #f7f7f7;
  line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
   is no content in the output_subarea and the prompt. The main purpose of this is
   to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
  padding-top: 0;
  padding-bottom: 0;
}
div.unrecognized_cell {
  padding: 5px 5px 5px 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.unrecognized_cell .inner_cell {
  border-radius: 2px;
  padding: 5px;
  font-weight: bold;
  color: red;
  border: 1px solid #cfcfcf;
  background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
  color: inherit;
  text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
  color: inherit;
  text-decoration: none;
}
@media (max-width: 540px) {
  div.unrecognized_cell > div.prompt {
    display: none;
  }
}
div.code_cell {
  /* avoid page breaking on code cells when printing */
}
@media print {
  div.code_cell {
    page-break-inside: avoid;
  }
}
/* any special styling for code cells that are currently running goes here */
div.input {
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.input {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
  color: #303F9F;
  border-top: 1px solid transparent;
}
div.input_area > div.highlight {
  margin: 0.4em;
  border: none;
  padding: 0px;
  background-color: transparent;
}
div.input_area > div.highlight > pre {
  margin: 0px;
  border: none;
  padding: 0px;
  background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
 * monospace font with inconsistent normal/bold/italic height.  See
 * notebookmain.js.  Such fonts will have keywords vertically offset with
 * respect to the rest of the text.  The user should select a better font.
 * See: https://github.com/ipython/ipython/issues/1503
 *
 * .CodeMirror span {
 *      vertical-align: bottom;
 * }
 */
.CodeMirror {
  line-height: 1.21429em;
  /* Changed from 1em to our global default */
  font-size: 14px;
  height: auto;
  /* Changed to auto to autogrow */
  background: none;
  /* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
  /*  The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
  /*  We have found that if it is visible, vertical scrollbars appear with font size changes.*/
  overflow-y: hidden;
  overflow-x: auto;
}
.CodeMirror-lines {
  /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
  /* we have set a different line-height and want this to scale with that. */
  /* Note that this should set vertical padding only, since CodeMirror assumes
       that horizontal padding will be set on CodeMirror pre */
  padding: 0.4em 0;
}
.CodeMirror-linenumber {
  padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.CodeMirror pre {
  /* In CM3 this went to 4px from 0 in CM2. This sets horizontal padding only,
    use .CodeMirror-lines for vertical */
  padding: 0 0.4em;
  border: 0;
  border-radius: 0;
}
.CodeMirror-cursor {
  border-left: 1.4px solid black;
}
@media screen and (min-width: 2138px) and (max-width: 4319px) {
  .CodeMirror-cursor {
    border-left: 2px solid black;
  }
}
@media screen and (min-width: 4320px) {
  .CodeMirror-cursor {
    border-left: 4px solid black;
  }
}
/*

Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme

*/
.highlight-base {
  color: #000;
}
.highlight-variable {
  color: #000;
}
.highlight-variable-2 {
  color: #1a1a1a;
}
.highlight-variable-3 {
  color: #333333;
}
.highlight-string {
  color: #BA2121;
}
.highlight-comment {
  color: #408080;
  font-style: italic;
}
.highlight-number {
  color: #080;
}
.highlight-atom {
  color: #88F;
}
.highlight-keyword {
  color: #008000;
  font-weight: bold;
}
.highlight-builtin {
  color: #008000;
}
.highlight-error {
  color: #f00;
}
.highlight-operator {
  color: #AA22FF;
  font-weight: bold;
}
.highlight-meta {
  color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
  color: #00f;
}
.highlight-string-2 {
  color: #f50;
}
.highlight-qualifier {
  color: #555;
}
.highlight-bracket {
  color: #997;
}
.highlight-tag {
  color: #170;
}
.highlight-attribute {
  color: #00c;
}
.highlight-header {
  color: blue;
}
.highlight-quote {
  color: #090;
}
.highlight-link {
  color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
  color: #008000;
  font-weight: bold;
}
.cm-s-ipython span.cm-atom {
  color: #88F;
}
.cm-s-ipython span.cm-number {
  color: #080;
}
.cm-s-ipython span.cm-def {
  color: #00f;
}
.cm-s-ipython span.cm-variable {
  color: #000;
}
.cm-s-ipython span.cm-operator {
  color: #AA22FF;
  font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
  color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
  color: #333333;
}
.cm-s-ipython span.cm-comment {
  color: #408080;
  font-style: italic;
}
.cm-s-ipython span.cm-string {
  color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
  color: #f50;
}
.cm-s-ipython span.cm-meta {
  color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
  color: #555;
}
.cm-s-ipython span.cm-builtin {
  color: #008000;
}
.cm-s-ipython span.cm-bracket {
  color: #997;
}
.cm-s-ipython span.cm-tag {
  color: #170;
}
.cm-s-ipython span.cm-attribute {
  color: #00c;
}
.cm-s-ipython span.cm-header {
  color: blue;
}
.cm-s-ipython span.cm-quote {
  color: #090;
}
.cm-s-ipython span.cm-link {
  color: #00c;
}
.cm-s-ipython span.cm-error {
  color: #f00;
}
.cm-s-ipython span.cm-tab {
  background: url();
  background-position: right;
  background-repeat: no-repeat;
}
div.output_wrapper {
  /* this position must be relative to enable descendents to be absolute within it */
  position: relative;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
  /* ideally, this would be max-height, but FF barfs all over that */
  height: 24em;
  /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
  width: 100%;
  overflow: auto;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
  margin: 0px;
  padding: 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
div.out_prompt_overlay {
  height: 100%;
  padding: 0px 0.4em;
  position: absolute;
  border-radius: 2px;
}
div.out_prompt_overlay:hover {
  /* use inner shadow to get border that is computed the same on WebKit/FF */
  -webkit-box-shadow: inset 0 0 1px #000;
  box-shadow: inset 0 0 1px #000;
  background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
  color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
  padding: 0px;
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.output_area .MathJax_Display {
  text-align: left !important;
}
div.output_area .rendered_html table {
  margin-left: 0;
  margin-right: 0;
}
div.output_area .rendered_html img {
  margin-left: 0;
  margin-right: 0;
}
div.output_area img,
div.output_area svg {
  max-width: 100%;
  height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
  max-width: none;
}
div.output_area .mglyph > img {
  max-width: none;
}
/* This is needed to protect the pre formating from global settings such
   as that of bootstrap */
.output {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.output_area {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
div.output_area pre {
  margin: 0;
  padding: 1px 0 1px 0;
  border: 0;
  vertical-align: baseline;
  color: black;
  background-color: transparent;
  border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
   the prompt div. */
div.output_subarea {
  overflow-x: auto;
  padding: 0.4em;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
  max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
  overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
   output types */
/* all text output has this class: */
div.output_text {
  text-align: left;
  color: #000;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
  background: #fdd;
  /* very light red background for stderr */
}
div.output_latex {
  text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
  padding: 0;
}
.js-error {
  color: darkred;
}
/* raw_input styles */
div.raw_input_container {
  line-height: 1.21429em;
  padding-top: 5px;
}
pre.raw_input_prompt {
  /* nothing needed here. */
}
input.raw_input {
  font-family: monospace;
  font-size: inherit;
  color: inherit;
  width: auto;
  /* make sure input baseline aligns with prompt */
  vertical-align: baseline;
  /* padding + margin = 0.5em between prompt and cursor */
  padding: 0em 0.25em;
  margin: 0em 0.25em;
}
input.raw_input:focus {
  box-shadow: none;
}
p.p-space {
  margin-bottom: 10px;
}
div.output_unrecognized {
  padding: 5px;
  font-weight: bold;
  color: red;
}
div.output_unrecognized a {
  color: inherit;
  text-decoration: none;
}
div.output_unrecognized a:hover {
  color: inherit;
  text-decoration: none;
}
.rendered_html {
  color: #000;
  /* any extras will just be numbers: */
}
.rendered_html em {
  font-style: italic;
}
.rendered_html strong {
  font-weight: bold;
}
.rendered_html u {
  text-decoration: underline;
}
.rendered_html :link {
  text-decoration: underline;
}
.rendered_html :visited {
  text-decoration: underline;
}
.rendered_html h1 {
  font-size: 185.7%;
  margin: 1.08em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h2 {
  font-size: 157.1%;
  margin: 1.27em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h3 {
  font-size: 128.6%;
  margin: 1.55em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h4 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h5 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h6 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h1:first-child {
  margin-top: 0.538em;
}
.rendered_html h2:first-child {
  margin-top: 0.636em;
}
.rendered_html h3:first-child {
  margin-top: 0.777em;
}
.rendered_html h4:first-child {
  margin-top: 1em;
}
.rendered_html h5:first-child {
  margin-top: 1em;
}
.rendered_html h6:first-child {
  margin-top: 1em;
}
.rendered_html ul:not(.list-inline),
.rendered_html ol:not(.list-inline) {
  padding-left: 2em;
}
.rendered_html ul {
  list-style: disc;
}
.rendered_html ul ul {
  list-style: square;
  margin-top: 0;
}
.rendered_html ul ul ul {
  list-style: circle;
}
.rendered_html ol {
  list-style: decimal;
}
.rendered_html ol ol {
  list-style: upper-alpha;
  margin-top: 0;
}
.rendered_html ol ol ol {
  list-style: lower-alpha;
}
.rendered_html ol ol ol ol {
  list-style: lower-roman;
}
.rendered_html ol ol ol ol ol {
  list-style: decimal;
}
.rendered_html * + ul {
  margin-top: 1em;
}
.rendered_html * + ol {
  margin-top: 1em;
}
.rendered_html hr {
  color: black;
  background-color: black;
}
.rendered_html pre {
  margin: 1em 2em;
  padding: 0px;
  background-color: #fff;
}
.rendered_html code {
  background-color: #eff0f1;
}
.rendered_html p code {
  padding: 1px 5px;
}
.rendered_html pre code {
  background-color: #fff;
}
.rendered_html pre,
.rendered_html code {
  border: 0;
  color: #000;
  font-size: 100%;
}
.rendered_html blockquote {
  margin: 1em 2em;
}
.rendered_html table {
  margin-left: auto;
  margin-right: auto;
  border: none;
  border-collapse: collapse;
  border-spacing: 0;
  color: black;
  font-size: 12px;
  table-layout: fixed;
}
.rendered_html thead {
  border-bottom: 1px solid black;
  vertical-align: bottom;
}
.rendered_html tr,
.rendered_html th,
.rendered_html td {
  text-align: right;
  vertical-align: middle;
  padding: 0.5em 0.5em;
  line-height: normal;
  white-space: normal;
  max-width: none;
  border: none;
}
.rendered_html th {
  font-weight: bold;
}
.rendered_html tbody tr:nth-child(odd) {
  background: #f5f5f5;
}
.rendered_html tbody tr:hover {
  background: rgba(66, 165, 245, 0.2);
}
.rendered_html * + table {
  margin-top: 1em;
}
.rendered_html p {
  text-align: left;
}
.rendered_html * + p {
  margin-top: 1em;
}
.rendered_html img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.rendered_html * + img {
  margin-top: 1em;
}
.rendered_html img,
.rendered_html svg {
  max-width: 100%;
  height: auto;
}
.rendered_html img.unconfined,
.rendered_html svg.unconfined {
  max-width: none;
}
.rendered_html .alert {
  margin-bottom: initial;
}
.rendered_html * + .alert {
  margin-top: 1em;
}
[dir="rtl"] .rendered_html p {
  text-align: right;
}
div.text_cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.text_cell > div.prompt {
    display: none;
  }
}
div.text_cell_render {
  /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
  outline: none;
  resize: none;
  width: inherit;
  border-style: none;
  padding: 0.5em 0.5em 0.5em 0.4em;
  color: #000;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
a.anchor-link:link {
  text-decoration: none;
  padding: 0px 20px;
  visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
  visibility: visible;
}
.text_cell.rendered .input_area {
  display: none;
}
.text_cell.rendered .rendered_html {
  overflow-x: auto;
  overflow-y: hidden;
}
.text_cell.rendered .rendered_html tr,
.text_cell.rendered .rendered_html th,
.text_cell.rendered .rendered_html td {
  max-width: none;
}
.text_cell.unrendered .text_cell_render {
  display: none;
}
.text_cell .dropzone .input_area {
  border: 2px dashed #bababa;
  margin: -1px;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
  font-weight: bold;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
  font-size: 185.7%;
}
.cm-header-2 {
  font-size: 157.1%;
}
.cm-header-3 {
  font-size: 128.6%;
}
.cm-header-4 {
  font-size: 110%;
}
.cm-header-5 {
  font-size: 100%;
  font-style: italic;
}
.cm-header-6 {
  font-size: 100%;
  font-style: italic;
}
/*!
*
* IPython notebook webapp
*
*/
@media (max-width: 767px) {
  .notebook_app {
    padding-left: 0px;
    padding-right: 0px;
  }
}
#ipython-main-app {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook_panel {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook {
  font-size: 14px;
  line-height: 20px;
  overflow-y: hidden;
  overflow-x: auto;
  width: 100%;
  /* This spaces the page away from the edge of the notebook area */
  padding-top: 20px;
  margin: 0px;
  outline: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  min-height: 100%;
}
@media not print {
  #notebook-container {
    padding: 15px;
    background-color: #fff;
    min-height: 0;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
@media print {
  #notebook-container {
    width: 100%;
  }
}
div.ui-widget-content {
  border: 1px solid #ababab;
  outline: none;
}
pre.dialog {
  background-color: #f7f7f7;
  border: 1px solid #ddd;
  border-radius: 2px;
  padding: 0.4em;
  padding-left: 2em;
}
p.dialog {
  padding: 0.2em;
}
/* Word-wrap output correctly.  This is the CSS3 spelling, though Firefox seems
   to not honor it correctly.  Webkit browsers (Chrome, rekonq, Safari) do.
 */
pre,
code,
kbd,
samp {
  white-space: pre-wrap;
}
#fonttest {
  font-family: monospace;
}
p {
  margin-bottom: 0;
}
.end_space {
  min-height: 100px;
  transition: height .2s ease;
}
.notebook_app > #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
@media not print {
  .notebook_app {
    background-color: #EEE;
  }
}
kbd {
  border-style: solid;
  border-width: 1px;
  box-shadow: none;
  margin: 2px;
  padding-left: 2px;
  padding-right: 2px;
  padding-top: 1px;
  padding-bottom: 1px;
}
.jupyter-keybindings {
  padding: 1px;
  line-height: 24px;
  border-bottom: 1px solid gray;
}
.jupyter-keybindings input {
  margin: 0;
  padding: 0;
  border: none;
}
.jupyter-keybindings i {
  padding: 6px;
}
.well code {
  background-color: #ffffff;
  border-color: #ababab;
  border-width: 1px;
  border-style: solid;
  padding: 2px;
  padding-top: 1px;
  padding-bottom: 1px;
}
/* CSS for the cell toolbar */
.celltoolbar {
  border: thin solid #CFCFCF;
  border-bottom: none;
  background: #EEE;
  border-radius: 2px 2px 0px 0px;
  width: 100%;
  height: 29px;
  padding-right: 4px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
  display: -webkit-flex;
}
@media print {
  .celltoolbar {
    display: none;
  }
}
.ctb_hideshow {
  display: none;
  vertical-align: bottom;
}
/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
   Cell toolbars are only shown when the ctb_global_show class is also set.
*/
.ctb_global_show .ctb_show.ctb_hideshow {
  display: block;
}
.ctb_global_show .ctb_show + .input_area,
.ctb_global_show .ctb_show + div.text_cell_input,
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border-top-right-radius: 0px;
  border-top-left-radius: 0px;
}
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border: 1px solid #cfcfcf;
}
.celltoolbar {
  font-size: 87%;
  padding-top: 3px;
}
.celltoolbar select {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
  width: inherit;
  font-size: inherit;
  height: 22px;
  padding: 0px;
  display: inline-block;
}
.celltoolbar select:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.celltoolbar select::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.celltoolbar select:-ms-input-placeholder {
  color: #999;
}
.celltoolbar select::-webkit-input-placeholder {
  color: #999;
}
.celltoolbar select::-ms-expand {
  border: 0;
  background-color: transparent;
}
.celltoolbar select[disabled],
.celltoolbar select[readonly],
fieldset[disabled] .celltoolbar select {
  background-color: #eeeeee;
  opacity: 1;
}
.celltoolbar select[disabled],
fieldset[disabled] .celltoolbar select {
  cursor: not-allowed;
}
textarea.celltoolbar select {
  height: auto;
}
select.celltoolbar select {
  height: 30px;
  line-height: 30px;
}
textarea.celltoolbar select,
select[multiple].celltoolbar select {
  height: auto;
}
.celltoolbar label {
  margin-left: 5px;
  margin-right: 5px;
}
.tags_button_container {
  width: 100%;
  display: flex;
}
.tag-container {
  display: flex;
  flex-direction: row;
  flex-grow: 1;
  overflow: hidden;
  position: relative;
}
.tag-container > * {
  margin: 0 4px;
}
.remove-tag-btn {
  margin-left: 4px;
}
.tags-input {
  display: flex;
}
.cell-tag:last-child:after {
  content: "";
  position: absolute;
  right: 0;
  width: 40px;
  height: 100%;
  /* Fade to background color of cell toolbar */
  background: linear-gradient(to right, rgba(0, 0, 0, 0), #EEE);
}
.tags-input > * {
  margin-left: 4px;
}
.cell-tag,
.tags-input input,
.tags-input button {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
  box-shadow: none;
  width: inherit;
  font-size: inherit;
  height: 22px;
  line-height: 22px;
  padding: 0px 4px;
  display: inline-block;
}
.cell-tag:focus,
.tags-input input:focus,
.tags-input button:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.cell-tag::-moz-placeholder,
.tags-input input::-moz-placeholder,
.tags-input button::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.cell-tag:-ms-input-placeholder,
.tags-input input:-ms-input-placeholder,
.tags-input button:-ms-input-placeholder {
  color: #999;
}
.cell-tag::-webkit-input-placeholder,
.tags-input input::-webkit-input-placeholder,
.tags-input button::-webkit-input-placeholder {
  color: #999;
}
.cell-tag::-ms-expand,
.tags-input input::-ms-expand,
.tags-input button::-ms-expand {
  border: 0;
  background-color: transparent;
}
.cell-tag[disabled],
.tags-input input[disabled],
.tags-input button[disabled],
.cell-tag[readonly],
.tags-input input[readonly],
.tags-input button[readonly],
fieldset[disabled] .cell-tag,
fieldset[disabled] .tags-input input,
fieldset[disabled] .tags-input button {
  background-color: #eeeeee;
  opacity: 1;
}
.cell-tag[disabled],
.tags-input input[disabled],
.tags-input button[disabled],
fieldset[disabled] .cell-tag,
fieldset[disabled] .tags-input input,
fieldset[disabled] .tags-input button {
  cursor: not-allowed;
}
textarea.cell-tag,
textarea.tags-input input,
textarea.tags-input button {
  height: auto;
}
select.cell-tag,
select.tags-input input,
select.tags-input button {
  height: 30px;
  line-height: 30px;
}
textarea.cell-tag,
textarea.tags-input input,
textarea.tags-input button,
select[multiple].cell-tag,
select[multiple].tags-input input,
select[multiple].tags-input button {
  height: auto;
}
.cell-tag,
.tags-input button {
  padding: 0px 4px;
}
.cell-tag {
  background-color: #fff;
  white-space: nowrap;
}
.tags-input input[type=text]:focus {
  outline: none;
  box-shadow: none;
  border-color: #ccc;
}
.completions {
  position: absolute;
  z-index: 110;
  overflow: hidden;
  border: 1px solid #ababab;
  border-radius: 2px;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  line-height: 1;
}
.completions select {
  background: white;
  outline: none;
  border: none;
  padding: 0px;
  margin: 0px;
  overflow: auto;
  font-family: monospace;
  font-size: 110%;
  color: #000;
  width: auto;
}
.completions select option.context {
  color: #286090;
}
#kernel_logo_widget .current_kernel_logo {
  display: none;
  margin-top: -1px;
  margin-bottom: -1px;
  width: 32px;
  height: 32px;
}
[dir="rtl"] #kernel_logo_widget {
  float: left !important;
  float: left;
}
.modal .modal-body .move-path {
  display: flex;
  flex-direction: row;
  justify-content: space;
  align-items: center;
}
.modal .modal-body .move-path .server-root {
  padding-right: 20px;
}
.modal .modal-body .move-path .path-input {
  flex: 1;
}
#menubar {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  margin-top: 1px;
}
#menubar .navbar {
  border-top: 1px;
  border-radius: 0px 0px 2px 2px;
  margin-bottom: 0px;
}
#menubar .navbar-toggle {
  float: left;
  padding-top: 7px;
  padding-bottom: 7px;
  border: none;
}
#menubar .navbar-collapse {
  clear: left;
}
[dir="rtl"] #menubar .navbar-toggle {
  float: right;
}
[dir="rtl"] #menubar .navbar-collapse {
  clear: right;
}
[dir="rtl"] #menubar .navbar-nav {
  float: right;
}
[dir="rtl"] #menubar .nav {
  padding-right: 0px;
}
[dir="rtl"] #menubar .navbar-nav > li {
  float: right;
}
[dir="rtl"] #menubar .navbar-right {
  float: left !important;
}
[dir="rtl"] ul.dropdown-menu {
  text-align: right;
  left: auto;
}
[dir="rtl"] ul#new-menu.dropdown-menu {
  right: auto;
  left: 0;
}
.nav-wrapper {
  border-bottom: 1px solid #e7e7e7;
}
i.menu-icon {
  padding-top: 4px;
}
[dir="rtl"] i.menu-icon.pull-right {
  float: left !important;
  float: left;
}
ul#help_menu li a {
  overflow: hidden;
  padding-right: 2.2em;
}
ul#help_menu li a i {
  margin-right: -1.2em;
}
[dir="rtl"] ul#help_menu li a {
  padding-left: 2.2em;
}
[dir="rtl"] ul#help_menu li a i {
  margin-right: 0;
  margin-left: -1.2em;
}
[dir="rtl"] ul#help_menu li a i.pull-right {
  float: left !important;
  float: left;
}
.dropdown-submenu {
  position: relative;
}
.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
}
[dir="rtl"] .dropdown-submenu > .dropdown-menu {
  right: 100%;
  margin-right: -1px;
}
.dropdown-submenu:hover > .dropdown-menu {
  display: block;
}
.dropdown-submenu > a:after {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  display: block;
  content: "\f0da";
  float: right;
  color: #333333;
  margin-top: 2px;
  margin-right: -10px;
}
.dropdown-submenu > a:after.fa-pull-left {
  margin-right: .3em;
}
.dropdown-submenu > a:after.fa-pull-right {
  margin-left: .3em;
}
.dropdown-submenu > a:after.pull-left {
  margin-right: .3em;
}
.dropdown-submenu > a:after.pull-right {
  margin-left: .3em;
}
[dir="rtl"] .dropdown-submenu > a:after {
  float: left;
  content: "\f0d9";
  margin-right: 0;
  margin-left: -10px;
}
.dropdown-submenu:hover > a:after {
  color: #262626;
}
.dropdown-submenu.pull-left {
  float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
  left: -100%;
  margin-left: 10px;
}
#notification_area {
  float: right !important;
  float: right;
  z-index: 10;
}
[dir="rtl"] #notification_area {
  float: left !important;
  float: left;
}
.indicator_area {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
[dir="rtl"] .indicator_area {
  float: left !important;
  float: left;
}
#kernel_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  border-left: 1px solid;
}
#kernel_indicator .kernel_indicator_name {
  padding-left: 5px;
  padding-right: 5px;
}
[dir="rtl"] #kernel_indicator {
  float: left !important;
  float: left;
  border-left: 0;
  border-right: 1px solid;
}
#modal_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
[dir="rtl"] #modal_indicator {
  float: left !important;
  float: left;
}
#readonly-indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  margin-top: 2px;
  margin-bottom: 0px;
  margin-left: 0px;
  margin-right: 0px;
  display: none;
}
.modal_indicator:before {
  width: 1.28571429em;
  text-align: center;
}
.edit_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f040";
}
.edit_mode .modal_indicator:before.fa-pull-left {
  margin-right: .3em;
}
.edit_mode .modal_indicator:before.fa-pull-right {
  margin-left: .3em;
}
.edit_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.edit_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.command_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ' ';
}
.command_mode .modal_indicator:before.fa-pull-left {
  margin-right: .3em;
}
.command_mode .modal_indicator:before.fa-pull-right {
  margin-left: .3em;
}
.command_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.command_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.kernel_idle_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f10c";
}
.kernel_idle_icon:before.fa-pull-left {
  margin-right: .3em;
}
.kernel_idle_icon:before.fa-pull-right {
  margin-left: .3em;
}
.kernel_idle_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_idle_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_busy_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f111";
}
.kernel_busy_icon:before.fa-pull-left {
  margin-right: .3em;
}
.kernel_busy_icon:before.fa-pull-right {
  margin-left: .3em;
}
.kernel_busy_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_busy_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_dead_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f1e2";
}
.kernel_dead_icon:before.fa-pull-left {
  margin-right: .3em;
}
.kernel_dead_icon:before.fa-pull-right {
  margin-left: .3em;
}
.kernel_dead_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_dead_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_disconnected_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f127";
}
.kernel_disconnected_icon:before.fa-pull-left {
  margin-right: .3em;
}
.kernel_disconnected_icon:before.fa-pull-right {
  margin-left: .3em;
}
.kernel_disconnected_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_disconnected_icon:before.pull-right {
  margin-left: .3em;
}
.notification_widget {
  color: #777;
  z-index: 10;
  background: rgba(240, 240, 240, 0.5);
  margin-right: 4px;
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget:focus,
.notification_widget.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.notification_widget:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active:hover,
.notification_widget.active:hover,
.open > .dropdown-toggle.notification_widget:hover,
.notification_widget:active:focus,
.notification_widget.active:focus,
.open > .dropdown-toggle.notification_widget:focus,
.notification_widget:active.focus,
.notification_widget.active.focus,
.open > .dropdown-toggle.notification_widget.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  background-image: none;
}
.notification_widget.disabled:hover,
.notification_widget[disabled]:hover,
fieldset[disabled] .notification_widget:hover,
.notification_widget.disabled:focus,
.notification_widget[disabled]:focus,
fieldset[disabled] .notification_widget:focus,
.notification_widget.disabled.focus,
.notification_widget[disabled].focus,
fieldset[disabled] .notification_widget.focus {
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget .badge {
  color: #fff;
  background-color: #333;
}
.notification_widget.warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning:focus,
.notification_widget.warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.notification_widget.warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active:hover,
.notification_widget.warning.active:hover,
.open > .dropdown-toggle.notification_widget.warning:hover,
.notification_widget.warning:active:focus,
.notification_widget.warning.active:focus,
.open > .dropdown-toggle.notification_widget.warning:focus,
.notification_widget.warning:active.focus,
.notification_widget.warning.active.focus,
.open > .dropdown-toggle.notification_widget.warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  background-image: none;
}
.notification_widget.warning.disabled:hover,
.notification_widget.warning[disabled]:hover,
fieldset[disabled] .notification_widget.warning:hover,
.notification_widget.warning.disabled:focus,
.notification_widget.warning[disabled]:focus,
fieldset[disabled] .notification_widget.warning:focus,
.notification_widget.warning.disabled.focus,
.notification_widget.warning[disabled].focus,
fieldset[disabled] .notification_widget.warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.notification_widget.success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success:focus,
.notification_widget.success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.notification_widget.success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active:hover,
.notification_widget.success.active:hover,
.open > .dropdown-toggle.notification_widget.success:hover,
.notification_widget.success:active:focus,
.notification_widget.success.active:focus,
.open > .dropdown-toggle.notification_widget.success:focus,
.notification_widget.success:active.focus,
.notification_widget.success.active.focus,
.open > .dropdown-toggle.notification_widget.success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  background-image: none;
}
.notification_widget.success.disabled:hover,
.notification_widget.success[disabled]:hover,
fieldset[disabled] .notification_widget.success:hover,
.notification_widget.success.disabled:focus,
.notification_widget.success[disabled]:focus,
fieldset[disabled] .notification_widget.success:focus,
.notification_widget.success.disabled.focus,
.notification_widget.success[disabled].focus,
fieldset[disabled] .notification_widget.success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.notification_widget.info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info:focus,
.notification_widget.info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.notification_widget.info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active:hover,
.notification_widget.info.active:hover,
.open > .dropdown-toggle.notification_widget.info:hover,
.notification_widget.info:active:focus,
.notification_widget.info.active:focus,
.open > .dropdown-toggle.notification_widget.info:focus,
.notification_widget.info:active.focus,
.notification_widget.info.active.focus,
.open > .dropdown-toggle.notification_widget.info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  background-image: none;
}
.notification_widget.info.disabled:hover,
.notification_widget.info[disabled]:hover,
fieldset[disabled] .notification_widget.info:hover,
.notification_widget.info.disabled:focus,
.notification_widget.info[disabled]:focus,
fieldset[disabled] .notification_widget.info:focus,
.notification_widget.info.disabled.focus,
.notification_widget.info[disabled].focus,
fieldset[disabled] .notification_widget.info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.notification_widget.danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger:focus,
.notification_widget.danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.notification_widget.danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active:hover,
.notification_widget.danger.active:hover,
.open > .dropdown-toggle.notification_widget.danger:hover,
.notification_widget.danger:active:focus,
.notification_widget.danger.active:focus,
.open > .dropdown-toggle.notification_widget.danger:focus,
.notification_widget.danger:active.focus,
.notification_widget.danger.active.focus,
.open > .dropdown-toggle.notification_widget.danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  background-image: none;
}
.notification_widget.danger.disabled:hover,
.notification_widget.danger[disabled]:hover,
fieldset[disabled] .notification_widget.danger:hover,
.notification_widget.danger.disabled:focus,
.notification_widget.danger[disabled]:focus,
fieldset[disabled] .notification_widget.danger:focus,
.notification_widget.danger.disabled.focus,
.notification_widget.danger[disabled].focus,
fieldset[disabled] .notification_widget.danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger .badge {
  color: #d9534f;
  background-color: #fff;
}
div#pager {
  background-color: #fff;
  font-size: 14px;
  line-height: 20px;
  overflow: hidden;
  display: none;
  position: fixed;
  bottom: 0px;
  width: 100%;
  max-height: 50%;
  padding-top: 8px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  /* Display over codemirror */
  z-index: 100;
  /* Hack which prevents jquery ui resizable from changing top. */
  top: auto !important;
}
div#pager pre {
  line-height: 1.21429em;
  color: #000;
  background-color: #f7f7f7;
  padding: 0.4em;
}
div#pager #pager-button-area {
  position: absolute;
  top: 8px;
  right: 20px;
}
div#pager #pager-contents {
  position: relative;
  overflow: auto;
  width: 100%;
  height: 100%;
}
div#pager #pager-contents #pager-container {
  position: relative;
  padding: 15px 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
div#pager .ui-resizable-handle {
  top: 0px;
  height: 8px;
  background: #f7f7f7;
  border-top: 1px solid #cfcfcf;
  border-bottom: 1px solid #cfcfcf;
  /* This injects handle bars (a short, wide = symbol) for 
        the resize handle. */
}
div#pager .ui-resizable-handle::after {
  content: '';
  top: 2px;
  left: 50%;
  height: 3px;
  width: 30px;
  margin-left: -15px;
  position: absolute;
  border-top: 1px solid #cfcfcf;
}
.quickhelp {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  line-height: 1.8em;
}
.shortcut_key {
  display: inline-block;
  width: 21ex;
  text-align: right;
  font-family: monospace;
}
.shortcut_descr {
  display: inline-block;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
span.save_widget {
  height: 30px;
  margin-top: 4px;
  display: flex;
  justify-content: flex-start;
  align-items: baseline;
  width: 50%;
  flex: 1;
}
span.save_widget span.filename {
  height: 100%;
  line-height: 1em;
  margin-left: 16px;
  border: none;
  font-size: 146.5%;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
  border-radius: 2px;
}
span.save_widget span.filename:hover {
  background-color: #e6e6e6;
}
[dir="rtl"] span.save_widget.pull-left {
  float: right !important;
  float: right;
}
[dir="rtl"] span.save_widget span.filename {
  margin-left: 0;
  margin-right: 16px;
}
span.checkpoint_status,
span.autosave_status {
  font-size: small;
  white-space: nowrap;
  padding: 0 5px;
}
@media (max-width: 767px) {
  span.save_widget {
    font-size: small;
    padding: 0 0 0 5px;
  }
  span.checkpoint_status,
  span.autosave_status {
    display: none;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  span.checkpoint_status {
    display: none;
  }
  span.autosave_status {
    font-size: x-small;
  }
}
.toolbar {
  padding: 0px;
  margin-left: -5px;
  margin-top: 2px;
  margin-bottom: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.toolbar select,
.toolbar label {
  width: auto;
  vertical-align: middle;
  margin-right: 2px;
  margin-bottom: 0px;
  display: inline;
  font-size: 92%;
  margin-left: 0.3em;
  margin-right: 0.3em;
  padding: 0px;
  padding-top: 3px;
}
.toolbar .btn {
  padding: 2px 8px;
}
.toolbar .btn-group {
  margin-top: 0px;
  margin-left: 5px;
}
.toolbar-btn-label {
  margin-left: 6px;
}
#maintoolbar {
  margin-bottom: -3px;
  margin-top: -8px;
  border: 0px;
  min-height: 27px;
  margin-left: 0px;
  padding-top: 11px;
  padding-bottom: 3px;
}
#maintoolbar .navbar-text {
  float: none;
  vertical-align: middle;
  text-align: right;
  margin-left: 5px;
  margin-right: 0px;
  margin-top: 0px;
}
.select-xs {
  height: 24px;
}
[dir="rtl"] .btn-group > .btn,
.btn-group-vertical > .btn {
  float: right;
}
.pulse,
.dropdown-menu > li > a.pulse,
li.pulse > a.dropdown-toggle,
li.pulse.open > a.dropdown-toggle {
  background-color: #F37626;
  color: white;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
 * of chance of beeing generated from the ../less/[samename].less file, you can
 * try to get back the less file by reverting somme commit in history
 **/
/*
 * We'll try to get something pretty, so we
 * have some strange css to have the scroll bar on
 * the left with fix button on the top right of the tooltip
 */
@-moz-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-moz-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/*properties of tooltip after "expand"*/
.bigtooltip {
  overflow: auto;
  height: 200px;
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
}
/*properties of tooltip before "expand"*/
.smalltooltip {
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 80px;
}
.tooltipbuttons {
  position: absolute;
  padding-right: 15px;
  top: 0px;
  right: 0px;
}
.tooltiptext {
  /*avoid the button to overlap on some docstring*/
  padding-right: 30px;
}
.ipython_tooltip {
  max-width: 700px;
  /*fade-in animation when inserted*/
  -webkit-animation: fadeOut 400ms;
  -moz-animation: fadeOut 400ms;
  animation: fadeOut 400ms;
  -webkit-animation: fadeIn 400ms;
  -moz-animation: fadeIn 400ms;
  animation: fadeIn 400ms;
  vertical-align: middle;
  background-color: #f7f7f7;
  overflow: visible;
  border: #ababab 1px solid;
  outline: none;
  padding: 3px;
  margin: 0px;
  padding-left: 7px;
  font-family: monospace;
  min-height: 50px;
  -moz-box-shadow: 0px 6px 10px -1px #adadad;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  border-radius: 2px;
  position: absolute;
  z-index: 1000;
}
.ipython_tooltip a {
  float: right;
}
.ipython_tooltip .tooltiptext pre {
  border: 0;
  border-radius: 0;
  font-size: 100%;
  background-color: #f7f7f7;
}
.pretooltiparrow {
  left: 0px;
  margin: 0px;
  top: -16px;
  width: 40px;
  height: 16px;
  overflow: hidden;
  position: absolute;
}
.pretooltiparrow:before {
  background-color: #f7f7f7;
  border: 1px #ababab solid;
  z-index: 11;
  content: "";
  position: absolute;
  left: 15px;
  top: 10px;
  width: 25px;
  height: 25px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}
ul.typeahead-list i {
  margin-left: -10px;
  width: 18px;
}
[dir="rtl"] ul.typeahead-list i {
  margin-left: 0;
  margin-right: -10px;
}
ul.typeahead-list {
  max-height: 80vh;
  overflow: auto;
}
ul.typeahead-list > li > a {
  /** Firefox bug **/
  /* see https://github.com/jupyter/notebook/issues/559 */
  white-space: normal;
}
ul.typeahead-list  > li > a.pull-right {
  float: left !important;
  float: left;
}
[dir="rtl"] .typeahead-list {
  text-align: right;
}
.cmd-palette .modal-body {
  padding: 7px;
}
.cmd-palette form {
  background: white;
}
.cmd-palette input {
  outline: none;
}
.no-shortcut {
  min-width: 20px;
  color: transparent;
}
[dir="rtl"] .no-shortcut.pull-right {
  float: left !important;
  float: left;
}
[dir="rtl"] .command-shortcut.pull-right {
  float: left !important;
  float: left;
}
.command-shortcut:before {
  content: "(command mode)";
  padding-right: 3px;
  color: #777777;
}
.edit-shortcut:before {
  content: "(edit)";
  padding-right: 3px;
  color: #777777;
}
[dir="rtl"] .edit-shortcut.pull-right {
  float: left !important;
  float: left;
}
#find-and-replace #replace-preview .match,
#find-and-replace #replace-preview .insert {
  background-color: #BBDEFB;
  border-color: #90CAF9;
  border-style: solid;
  border-width: 1px;
  border-radius: 0px;
}
[dir="ltr"] #find-and-replace .input-group-btn + .form-control {
  border-left: none;
}
[dir="rtl"] #find-and-replace .input-group-btn + .form-control {
  border-right: none;
}
#find-and-replace #replace-preview .replace .match {
  background-color: #FFCDD2;
  border-color: #EF9A9A;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .insert {
  background-color: #C8E6C9;
  border-color: #A5D6A7;
  border-radius: 0px;
}
#find-and-replace #replace-preview {
  max-height: 60vh;
  overflow: auto;
}
#find-and-replace #replace-preview pre {
  padding: 5px 10px;
}
.terminal-app {
  background: #EEE;
}
.terminal-app #header {
  background: #fff;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.terminal-app .terminal {
  width: 100%;
  float: left;
  font-family: monospace;
  color: white;
  background: black;
  padding: 0.4em;
  border-radius: 2px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
}
.terminal-app .terminal,
.terminal-app .terminal dummy-screen {
  line-height: 1em;
  font-size: 14px;
}
.terminal-app .terminal .xterm-rows {
  padding: 10px;
}
.terminal-app .terminal-cursor {
  color: black;
  background: white;
}
.terminal-app #terminado-container {
  margin-top: 20px;
}
/*# sourceMappingURL=style.min.css.map */
    </style>
<style type="text/css">
    .highlight .hll { background-color: #ffffcc }
.highlight  { background: #f8f8f8; }
.highlight .c { color: #408080; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #B00040 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BA2121 } /* Literal.String */
.highlight .na { color: #7D9029 } /* Name.Attribute */
.highlight .nb { color: #008000 } /* Name.Builtin */
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0000FF } /* Name.Function */
.highlight .nl { color: #A0A000 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #19177C } /* Name.Variable */
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #666666 } /* Literal.Number.Bin */
.highlight .mf { color: #666666 } /* Literal.Number.Float */
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0000FF } /* Name.Function.Magic */
.highlight .vc { color: #19177C } /* Name.Variable.Class */
.highlight .vg { color: #19177C } /* Name.Variable.Global */
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
.highlight .vm { color: #19177C } /* Name.Variable.Magic */
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
    </style>


<style type="text/css">
/* Overrides of notebook CSS for static HTML export */
body {
  overflow: visible;
  padding: 8px;
}

div#notebook {
  overflow: visible;
  border-top: none;
}@media print {
  div.cell {
    display: block;
    page-break-inside: avoid;
  } 
  div.output_wrapper { 
    display: block;
    page-break-inside: avoid; 
  }
  div.output { 
    display: block;
    page-break-inside: avoid; 
  }
}
</style>

<!-- Custom stylesheet, it must be in the same directory as the html file -->
<link rel="stylesheet" href="custom.css">

<!-- Loading mathjax macro -->
<!-- Load mathjax -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS_HTML"></script>
    <!-- MathJax configuration -->
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        tex2jax: {
            inlineMath: [ ['$','$'], ["\\(","\\)"] ],
            displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
            processEscapes: true,
            processEnvironments: true
        },
        // Center justify equations in code and markdown cells. Elsewhere
        // we use CSS to left justify single line equations in code cells.
        displayAlign: 'center',
        "HTML-CSS": {
            styles: {'.MathJax_Display': {"margin": 0}},
            linebreaks: { automatic: true }
        }
    });
    </script>
    <!-- End of mathjax configuration --></head>
<body>
  <div tabindex="-1" id="notebook" class="border-box-sizing">
    <div class="container" id="notebook-container">

<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#22320;&#29702;&#32534;&#30721;&#12289;&#36870;&#22320;&#29702;&#32534;&#30721;&#12289;&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;&#65288;&#20195;&#30721;A&#65289;">&#22320;&#29702;&#32534;&#30721;&#12289;&#36870;&#22320;&#29702;&#32534;&#30721;&#12289;&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;&#65288;&#20195;&#30721;A&#65289;<a class="anchor-link" href="#&#22320;&#29702;&#32534;&#30721;&#12289;&#36870;&#22320;&#29702;&#32534;&#30721;&#12289;&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;&#65288;&#20195;&#30721;A&#65289;">&#182;</a></h1><p><strong>我认为只是进行了数据交换，因此没有含有ML和AI的功能</strong></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[1]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[2]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">requests</span>
<span class="n">key_zyi</span><span class="o">=</span><span class="s2">&quot;317b2b98b27b266839553f10debb9b0f&quot;</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="A-1-&#33719;&#21462;&#22320;&#29702;&#32534;&#30721;">A-1 &#33719;&#21462;&#22320;&#29702;&#32534;&#30721;<a class="anchor-link" href="#A-1-&#33719;&#21462;&#22320;&#29702;&#32534;&#30721;">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[3]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># A-1 地理编码</span>
<span class="k">def</span> <span class="nf">geocode</span><span class="p">(</span><span class="n">address</span><span class="p">,</span><span class="n">city</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">batch</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="sd">&quot;&quot;&quot;获取地理编码&quot;&quot;&quot;</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/geocode/geo?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span> <span class="n">key_zyi</span><span class="p">,</span>
        <span class="s1">&#39;address&#39;</span><span class="p">:</span><span class="n">address</span><span class="p">,</span>
        <span class="s1">&#39;city&#39;</span><span class="p">:</span><span class="n">city</span><span class="p">,</span>
        <span class="s1">&#39;batch&#39;</span><span class="p">:</span><span class="n">batch</span><span class="p">,</span>
        <span class="s1">&#39;sig&#39;</span><span class="p">:</span><span class="n">sig</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
<span class="n">泰禾</span> <span class="o">=</span> <span class="n">geocode</span><span class="p">(</span><span class="n">address</span><span class="o">=</span><span class="s1">&#39;福建省福州市东二环泰禾广场&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">泰禾</span><span class="p">)</span>
<span class="n">df_泰禾地理编码</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">泰禾</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">])</span>
<span class="n">display</span><span class="p">(</span><span class="n">df_泰禾地理编码</span><span class="p">)</span>
<span class="n">泰禾地理编码</span> <span class="o">=</span> <span class="n">泰禾</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;location&#39;</span><span class="p">]</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;泰禾地理编码:&quot;</span><span class="p">,</span><span class="n">泰禾地理编码</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>{&#39;status&#39;: &#39;1&#39;, &#39;info&#39;: &#39;OK&#39;, &#39;infocode&#39;: &#39;10000&#39;, &#39;count&#39;: &#39;1&#39;, &#39;geocodes&#39;: [{&#39;formatted_address&#39;: &#39;福建省福州市晋安区东二环泰禾广场&#39;, &#39;country&#39;: &#39;中国&#39;, &#39;province&#39;: &#39;福建省&#39;, &#39;citycode&#39;: &#39;0591&#39;, &#39;city&#39;: &#39;福州市&#39;, &#39;district&#39;: &#39;晋安区&#39;, &#39;township&#39;: [], &#39;neighborhood&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;building&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;adcode&#39;: &#39;350111&#39;, &#39;street&#39;: [], &#39;number&#39;: [], &#39;location&#39;: &#39;119.336798,26.090101&#39;, &#39;level&#39;: &#39;兴趣点&#39;}]}
</pre>
</div>
</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>formatted_address</th>
      <th>country</th>
      <th>province</th>
      <th>citycode</th>
      <th>city</th>
      <th>district</th>
      <th>township</th>
      <th>adcode</th>
      <th>street</th>
      <th>number</th>
      <th>location</th>
      <th>level</th>
      <th>neighborhood.name</th>
      <th>neighborhood.type</th>
      <th>building.name</th>
      <th>building.type</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>福建省福州市晋安区东二环泰禾广场</td>
      <td>中国</td>
      <td>福建省</td>
      <td>0591</td>
      <td>福州市</td>
      <td>晋安区</td>
      <td>[]</td>
      <td>350111</td>
      <td>[]</td>
      <td>[]</td>
      <td>119.336798,26.090101</td>
      <td>兴趣点</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

<div class="output_area">

    <div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>泰禾地理编码: 119.336798,26.090101
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="A-2-&#36870;&#22320;&#29702;&#32534;&#30721;&#65288;&#22522;&#30784;/&#20840;&#65289;">A-2 &#36870;&#22320;&#29702;&#32534;&#30721;&#65288;&#22522;&#30784;/&#20840;&#65289;<a class="anchor-link" href="#A-2-&#36870;&#22320;&#29702;&#32534;&#30721;&#65288;&#22522;&#30784;/&#20840;&#65289;">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[4]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># A-2 基础逆地理编码分析</span>
<span class="k">def</span> <span class="nf">regeocode</span><span class="p">(</span><span class="n">location</span><span class="p">,</span><span class="n">poitype</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">radius</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s2">&quot;base&quot;</span><span class="p">,</span><span class="n">batch</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span><span class="n">roadlevel</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">homeorcorp</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="sd">&quot;&quot;&quot;获取逆地理编码&quot;&quot;&quot;</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/geocode/regeo?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span> <span class="n">key_zyi</span><span class="p">,</span>
        <span class="s1">&#39;location&#39;</span><span class="p">:</span><span class="n">location</span><span class="p">,</span>
        <span class="s1">&#39;poitype&#39;</span><span class="p">:</span><span class="n">poitype</span><span class="p">,</span>
        <span class="s1">&#39;radius&#39;</span><span class="p">:</span><span class="n">radius</span><span class="p">,</span>
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;batch&#39;</span><span class="p">:</span><span class="n">batch</span><span class="p">,</span>
        <span class="s1">&#39;roadlevel&#39;</span><span class="p">:</span><span class="n">roadlevel</span><span class="p">,</span>
        <span class="s1">&#39;homeorcorp&#39;</span><span class="p">:</span><span class="n">homeorcorp</span><span class="p">,</span>
        <span class="s1">&#39;sig&#39;</span><span class="p">:</span><span class="n">sig</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>

<span class="n">泰禾逆地理编码</span> <span class="o">=</span> <span class="n">regeocode</span><span class="p">(</span><span class="n">泰禾地理编码</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">泰禾逆地理编码</span><span class="p">)</span>
<span class="n">df_泰禾逆地理编码</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">泰禾逆地理编码</span><span class="p">)</span><span class="o">.</span><span class="n">T</span>
<span class="n">display</span><span class="p">(</span><span class="n">df_泰禾逆地理编码</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>{&#39;status&#39;: &#39;1&#39;, &#39;regeocode&#39;: {&#39;addressComponent&#39;: {&#39;city&#39;: &#39;福州市&#39;, &#39;province&#39;: &#39;福建省&#39;, &#39;adcode&#39;: &#39;350111&#39;, &#39;district&#39;: &#39;晋安区&#39;, &#39;towncode&#39;: &#39;350111102000&#39;, &#39;streetNumber&#39;: {&#39;number&#39;: &#39;22号楼&#39;, &#39;location&#39;: &#39;119.336414,26.0899031&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;distance&#39;: &#39;44.2383&#39;, &#39;street&#39;: &#39;连江北路&#39;}, &#39;country&#39;: &#39;中国&#39;, &#39;township&#39;: &#39;岳峰镇&#39;, &#39;businessAreas&#39;: [{&#39;location&#39;: &#39;119.327784,26.08602&#39;, &#39;name&#39;: &#39;岳峰&#39;, &#39;id&#39;: &#39;350111&#39;}, {&#39;location&#39;: &#39;119.356221,26.070663&#39;, &#39;name&#39;: &#39;鼓山&#39;, &#39;id&#39;: &#39;350111&#39;}, {&#39;location&#39;: &#39;119.338741,26.082575&#39;, &#39;name&#39;: &#39;茶会村&#39;, &#39;id&#39;: &#39;350111&#39;}], &#39;building&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;neighborhood&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;citycode&#39;: &#39;0591&#39;}, &#39;formatted_address&#39;: &#39;福建省福州市晋安区岳峰镇汉拿山(泰禾广场西区)泰禾广场(东二环店)&#39;}, &#39;info&#39;: &#39;OK&#39;, &#39;infocode&#39;: &#39;10000&#39;}
</pre>
</div>
</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>0</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>status</th>
      <td>1</td>
    </tr>
    <tr>
      <th>info</th>
      <td>OK</td>
    </tr>
    <tr>
      <th>infocode</th>
      <td>10000</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.city</th>
      <td>福州市</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.province</th>
      <td>福建省</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.adcode</th>
      <td>350111</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.district</th>
      <td>晋安区</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.towncode</th>
      <td>350111102000</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.number</th>
      <td>22号楼</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.location</th>
      <td>119.336414,26.0899031</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.direction</th>
      <td>西南</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.distance</th>
      <td>44.2383</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.street</th>
      <td>连江北路</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.country</th>
      <td>中国</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.township</th>
      <td>岳峰镇</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.businessAreas</th>
      <td>[{'location': '119.327784,26.08602', 'name': '...</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.building.name</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.building.type</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.neighborhood.name</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.neighborhood.type</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.citycode</th>
      <td>0591</td>
    </tr>
    <tr>
      <th>regeocode.formatted_address</th>
      <td>福建省福州市晋安区岳峰镇汉拿山(泰禾广场西区)泰禾广场(东二环店)</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[5]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># A-2 Extra 全部逆地理编码分析</span>
<span class="n">泰禾逆地理编码_all</span> <span class="o">=</span> <span class="n">regeocode</span><span class="p">(</span><span class="n">泰禾地理编码</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s2">&quot;all&quot;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">泰禾逆地理编码_all</span><span class="p">)</span>
<span class="n">df_泰禾逆地理编码_all</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">泰禾逆地理编码_all</span><span class="p">)</span><span class="o">.</span><span class="n">T</span>
<span class="n">display</span><span class="p">(</span><span class="n">df_泰禾逆地理编码_all</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>{&#39;status&#39;: &#39;1&#39;, &#39;regeocode&#39;: {&#39;roads&#39;: [{&#39;id&#39;: &#39;0591G50F023043604849&#39;, &#39;location&#39;: &#39;119.338,26.0898&#39;, &#39;direction&#39;: &#39;西&#39;, &#39;name&#39;: &#39;竹屿路&#39;, &#39;distance&#39;: &#39;99.4605&#39;}, {&#39;id&#39;: &#39;0591G50F0230431211&#39;, &#39;location&#39;: &#39;119.337,26.0891&#39;, &#39;direction&#39;: &#39;北&#39;, &#39;name&#39;: &#39;化工路&#39;, &#39;distance&#39;: &#39;118.864&#39;}, {&#39;id&#39;: &#39;0591G50F023043336&#39;, &#39;location&#39;: &#39;119.338,26.089&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;name&#39;: &#39;茶会路&#39;, &#39;distance&#39;: &#39;155.829&#39;}], &#39;roadinters&#39;: [{&#39;second_name&#39;: &#39;竹屿路&#39;, &#39;first_id&#39;: &#39;0591G50F0230431211&#39;, &#39;second_id&#39;: &#39;0591G50F023043604849&#39;, &#39;location&#39;: &#39;119.3377947,26.08910972&#39;, &#39;distance&#39;: &#39;148.529&#39;, &#39;first_name&#39;: &#39;化工路&#39;, &#39;direction&#39;: &#39;西北&#39;}], &#39;formatted_address&#39;: &#39;福建省福州市晋安区岳峰镇汉拿山(泰禾广场西区)泰禾广场(东二环店)&#39;, &#39;addressComponent&#39;: {&#39;city&#39;: &#39;福州市&#39;, &#39;province&#39;: &#39;福建省&#39;, &#39;adcode&#39;: &#39;350111&#39;, &#39;district&#39;: &#39;晋安区&#39;, &#39;towncode&#39;: &#39;350111102000&#39;, &#39;streetNumber&#39;: {&#39;number&#39;: &#39;22号楼&#39;, &#39;location&#39;: &#39;119.336414,26.0899031&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;distance&#39;: &#39;44.2383&#39;, &#39;street&#39;: &#39;连江北路&#39;}, &#39;country&#39;: &#39;中国&#39;, &#39;township&#39;: &#39;岳峰镇&#39;, &#39;businessAreas&#39;: [{&#39;location&#39;: &#39;119.327784,26.08602&#39;, &#39;name&#39;: &#39;岳峰&#39;, &#39;id&#39;: &#39;350111&#39;}, {&#39;location&#39;: &#39;119.356221,26.070663&#39;, &#39;name&#39;: &#39;鼓山&#39;, &#39;id&#39;: &#39;350111&#39;}, {&#39;location&#39;: &#39;119.338741,26.082575&#39;, &#39;name&#39;: &#39;茶会村&#39;, &#39;id&#39;: &#39;350111&#39;}], &#39;building&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;neighborhood&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;citycode&#39;: &#39;0591&#39;}, &#39;aois&#39;: [{&#39;area&#39;: &#39;201385.057840&#39;, &#39;type&#39;: &#39;060101&#39;, &#39;id&#39;: &#39;B0FFF01ETV&#39;, &#39;location&#39;: &#39;119.336008,26.091043&#39;, &#39;adcode&#39;: &#39;350111&#39;, &#39;name&#39;: &#39;泰禾广场(东二环店)&#39;, &#39;distance&#39;: &#39;0&#39;}], &#39;pois&#39;: [{&#39;id&#39;: &#39;B0FFF01ETV&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;岳峰镇竹屿路6号&#39;, &#39;poiweight&#39;: &#39;0.519804&#39;, &#39;name&#39;: &#39;泰禾广场(东二环店)&#39;, &#39;location&#39;: &#39;119.336008,26.091043&#39;, &#39;distance&#39;: &#39;131.133&#39;, &#39;tel&#39;: &#39;0591-63169999&#39;, &#39;type&#39;: &#39;购物服务;商场;购物中心&#39;}, {&#39;id&#39;: &#39;B0FFJBAYZM&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;竹屿路6号泰禾广场西区L5层&#39;, &#39;poiweight&#39;: &#39;0.205674&#39;, &#39;name&#39;: &#39;汉拿山(泰禾广场西区)&#39;, &#39;location&#39;: &#39;119.336597,26.090416&#39;, &#39;distance&#39;: &#39;40.3777&#39;, &#39;tel&#39;: &#39;0591-63168689&#39;, &#39;type&#39;: &#39;餐饮服务;外国餐厅;韩国料理&#39;}, {&#39;id&#39;: &#39;B0FFKU0O6Y&#39;, &#39;direction&#39;: &#39;北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;竹屿路6号泰禾广场西区L6层&#39;, &#39;poiweight&#39;: &#39;0.194988&#39;, &#39;name&#39;: &#39;越城记(泰禾广场西区)&#39;, &#39;location&#39;: &#39;119.336715,26.090849&#39;, &#39;distance&#39;: &#39;83.5656&#39;, &#39;tel&#39;: &#39;0591-83215757&#39;, &#39;type&#39;: &#39;餐饮服务;中餐厅;中餐厅&#39;}, {&#39;id&#39;: &#39;B0FFKU0O6F&#39;, &#39;direction&#39;: &#39;西&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;连江路与化工路交汇处东二环泰禾广场22号楼5层L523&#39;, &#39;poiweight&#39;: &#39;0.194988&#39;, &#39;name&#39;: &#39;那一家(泰禾广场西区)&#39;, &#39;location&#39;: &#39;119.335654,26.089788&#39;, &#39;distance&#39;: &#39;119.452&#39;, &#39;tel&#39;: &#39;0591-87326617;13559149397;18559856251&#39;, &#39;type&#39;: &#39;餐饮服务;中餐厅;中餐厅&#39;}, {&#39;id&#39;: &#39;B0FFGG0O6M&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;竹屿路6号泰禾广场西区B1层&#39;, &#39;poiweight&#39;: &#39;0.303971&#39;, &#39;name&#39;: &#39;香港满记甜品(泰禾广场西区)&#39;, &#39;location&#39;: &#39;119.336192,26.090831&#39;, &#39;distance&#39;: &#39;101.26&#39;, &#39;tel&#39;: &#39;0591-87301520;0591-87322265&#39;, &#39;type&#39;: &#39;餐饮服务;甜品店;甜品店&#39;}, {&#39;id&#39;: &#39;B0FFKU0OBB&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;竹屿路6号&#39;, &#39;poiweight&#39;: &#39;0.3037&#39;, &#39;name&#39;: &#39;泰禾广场西区&#39;, &#39;location&#39;: &#39;119.336436,26.090321&#39;, &#39;distance&#39;: &#39;43.6474&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;购物服务;商场;购物中心&#39;}, {&#39;id&#39;: &#39;B0FFG9AN5L&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;岳峰镇竹屿路6号东二环泰禾城市广场&#39;, &#39;poiweight&#39;: &#39;0.205175&#39;, &#39;name&#39;: &#39;水秀广场&#39;, &#39;location&#39;: &#39;119.334045,26.091683&#39;, &#39;distance&#39;: &#39;326.403&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;风景名胜;风景名胜;风景名胜&#39;}, {&#39;id&#39;: &#39;B0FFF3X852&#39;, &#39;direction&#39;: &#39;东南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;喜盈门路1号&#39;, &#39;poiweight&#39;: &#39;0.170025&#39;, &#39;name&#39;: &#39;福建鑫天地家具城&#39;, &#39;location&#39;: &#39;119.337508,26.088505&#39;, &#39;distance&#39;: &#39;191.127&#39;, &#39;tel&#39;: &#39;0591-28066385&#39;, &#39;type&#39;: &#39;购物服务;家居建材市场;家具城&#39;}, {&#39;id&#39;: &#39;B0FFKU0NW7&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;竹屿路6号泰禾广场东区B1层&#39;, &#39;poiweight&#39;: &#39;0.171953&#39;, &#39;name&#39;: &#39;英孚教育青少儿英语(泰禾广场东区)&#39;, &#39;location&#39;: &#39;119.338181,26.089937&#39;, &#39;distance&#39;: &#39;139.326&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;科教文化服务;培训机构;培训机构&#39;}, {&#39;id&#39;: &#39;B0FFIII8JK&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;东二环泰禾广场东区Mall&#39;, &#39;poiweight&#39;: &#39;0.354709&#39;, &#39;name&#39;: &#39;太空向往主题公园(东二环泰禾广场东区Mall)&#39;, &#39;location&#39;: &#39;119.338452,26.090096&#39;, &#39;distance&#39;: &#39;165.173&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;风景名胜;公园广场;公园&#39;}, {&#39;id&#39;: &#39;B0FFFA9YP7&#39;, &#39;direction&#39;: &#39;西&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;晋安区&#39;, &#39;poiweight&#39;: &#39;0.284073&#39;, &#39;name&#39;: &#39;岳峰高架桥&#39;, &#39;location&#39;: &#39;119.333046,26.090702&#39;, &#39;distance&#39;: &#39;380.612&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;地名地址信息;交通地名;立交桥&#39;}, {&#39;id&#39;: &#39;B0FFJQQCHP&#39;, &#39;direction&#39;: &#39;北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;横屿路东二环泰禾11号公馆2层&#39;, &#39;poiweight&#39;: &#39;0.180294&#39;, &#39;name&#39;: &#39;新爱婴国际早教(东泰禾中心)&#39;, &#39;location&#39;: &#39;119.337145,26.091853&#39;, &#39;distance&#39;: &#39;197.873&#39;, &#39;tel&#39;: &#39;0591-87312622&#39;, &#39;type&#39;: &#39;科教文化服务;科教文化场所;科教文化场所&#39;}, {&#39;id&#39;: &#39;B0FFHO85MA&#39;, &#39;direction&#39;: &#39;南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;连江北路293号&#39;, &#39;poiweight&#39;: &#39;0.166497&#39;, &#39;name&#39;: &#39;喜盈门(福州)建材家具广场&#39;, &#39;location&#39;: &#39;119.336276,26.086804&#39;, &#39;distance&#39;: &#39;370.338&#39;, &#39;tel&#39;: &#39;0591-88050511;0591-88055300&#39;, &#39;type&#39;: &#39;购物服务;家居建材市场;家具建材综合市场&#39;}, {&#39;id&#39;: &#39;B0FFGJ67L3&#39;, &#39;direction&#39;: &#39;东南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;连江北路293-2新南方大厦510&#39;, &#39;poiweight&#39;: &#39;0.134118&#39;, &#39;name&#39;: &#39;福州捷诚房屋征收工程处&#39;, &#39;location&#39;: &#39;119.338620,26.087260&#39;, &#39;distance&#39;: &#39;364.584&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;政府机构及社会团体;政府机关;区县级政府及事业单位&#39;}, {&#39;id&#39;: &#39;B024F05XAS&#39;, &#39;direction&#39;: &#39;东南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;连江北路293-2号&#39;, &#39;poiweight&#39;: &#39;0.390248&#39;, &#39;name&#39;: &#39;福州新南方家居建材旗舰中心&#39;, &#39;location&#39;: &#39;119.338583,26.087129&#39;, &#39;distance&#39;: &#39;375.523&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;购物服务;家居建材市场;家具建材综合市场&#39;}, {&#39;id&#39;: &#39;B0FFHZUIKZ&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;岳峰镇竹屿路6号泰禾城市广场商业中心17号楼2层&#39;, &#39;poiweight&#39;: &#39;0.162355&#39;, &#39;name&#39;: &#39;英孚教育青少儿英语(东二环泰禾中心)&#39;, &#39;location&#39;: &#39;119.335070,26.091403&#39;, &#39;distance&#39;: &#39;225.263&#39;, &#39;tel&#39;: &#39;4001079100&#39;, &#39;type&#39;: &#39;科教文化服务;培训机构;培训机构&#39;}, {&#39;id&#39;: &#39;B0FFGG0IX2&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;东二环泰禾广场22号楼B102-3&#39;, &#39;poiweight&#39;: &#39;0.435039&#39;, &#39;name&#39;: &#39;宝岛眼镜(福州东二环泰禾广场店)&#39;, &#39;location&#39;: &#39;119.336394,26.089932&#39;, &#39;distance&#39;: &#39;44.532&#39;, &#39;tel&#39;: &#39;0591-87315753&#39;, &#39;type&#39;: &#39;购物服务;专卖店;眼镜店&#39;}, {&#39;id&#39;: &#39;B0FFGMS9C5&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;化工路与竹屿路交叉口竹泰禾广场B1层&#39;, &#39;poiweight&#39;: &#39;0.456295&#39;, &#39;name&#39;: &#39;鲑鱼工坊(东二环泰禾店)&#39;, &#39;location&#39;: &#39;119.336410,26.089901&#39;, &#39;distance&#39;: &#39;44.6828&#39;, &#39;tel&#39;: &#39;18065078071&#39;, &#39;type&#39;: &#39;餐饮服务;中餐厅;中餐厅&#39;}, {&#39;id&#39;: &#39;B024F000CD&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;连江北路253号&#39;, &#39;poiweight&#39;: &#39;0.240627&#39;, &#39;name&#39;: &#39;福州佳通第一塑料有限公司&#39;, &#39;location&#39;: &#39;119.335322,26.087996&#39;, &#39;distance&#39;: &#39;276.63&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;公司企业;公司;公司&#39;}, {&#39;id&#39;: &#39;B0FFHMX11D&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;化工路&#39;, &#39;poiweight&#39;: &#39;0.287082&#39;, &#39;name&#39;: &#39;泰禾城市广场东区儿童MALL&#39;, &#39;location&#39;: &#39;119.339291,26.090150&#39;, &#39;distance&#39;: &#39;249.039&#39;, &#39;tel&#39;: &#39;0591-63160999&#39;, &#39;type&#39;: &#39;商务住宅;住宅区;住宅小区&#39;}, {&#39;id&#39;: &#39;B0FFGJ6DNT&#39;, &#39;direction&#39;: &#39;东南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;化工路38号&#39;, &#39;poiweight&#39;: &#39;0.160973&#39;, &#39;name&#39;: &#39;林珍装饰材料有限公司&#39;, &#39;location&#39;: &#39;119.338523,26.088908&#39;, &#39;distance&#39;: &#39;217.438&#39;, &#39;tel&#39;: &#39;0591-83613223;18950396001&#39;, &#39;type&#39;: &#39;公司企业;公司;公司&#39;}, {&#39;id&#39;: &#39;B0FFKU0OAV&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;竹屿路6号&#39;, &#39;poiweight&#39;: &#39;0.3037&#39;, &#39;name&#39;: &#39;泰禾广场东区&#39;, &#39;location&#39;: &#39;119.339455,26.090056&#39;, &#39;distance&#39;: &#39;265.394&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;购物服务;商场;购物中心&#39;}, {&#39;id&#39;: &#39;B0FFIAVDVB&#39;, &#39;direction&#39;: &#39;西&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;东二环泰禾广场21号楼121(商场2号门音乐喷泉旁)&#39;, &#39;poiweight&#39;: &#39;0.546774&#39;, &#39;name&#39;: &#39;胡桃里音乐酒馆(东二环泰禾店)&#39;, &#39;location&#39;: &#39;119.335132,26.090769&#39;, &#39;distance&#39;: &#39;182.21&#39;, &#39;tel&#39;: &#39;0591-88033929&#39;, &#39;type&#39;: &#39;餐饮服务;中餐厅;中餐厅&#39;}, {&#39;id&#39;: &#39;B0FFGG7M4L&#39;, &#39;direction&#39;: &#39;东南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;化工路38号元福建材街A6号&#39;, &#39;poiweight&#39;: &#39;0.159434&#39;, &#39;name&#39;: &#39;佰家汇地板&#39;, &#39;location&#39;: &#39;119.339332,26.088229&#39;, &#39;distance&#39;: &#39;327.693&#39;, &#39;tel&#39;: &#39;13799408900;13459403618&#39;, &#39;type&#39;: &#39;购物服务;家居建材市场;家居建材市场&#39;}, {&#39;id&#39;: &#39;B0FFHHVP0V&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;东二环泰禾广场6号楼1-2层&#39;, &#39;poiweight&#39;: &#39;0.308699&#39;, &#39;name&#39;: &#39;中国工商银行(福州城东支行)&#39;, &#39;location&#39;: &#39;119.335664,26.092649&#39;, &#39;distance&#39;: &#39;305.116&#39;, &#39;tel&#39;: &#39;0591-87326989&#39;, &#39;type&#39;: &#39;金融保险服务;银行;中国工商银行&#39;}, {&#39;id&#39;: &#39;B024F04OJH&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;晋安区&#39;, &#39;poiweight&#39;: &#39;0.392054&#39;, &#39;name&#39;: &#39;竹屿村&#39;, &#39;location&#39;: &#39;119.339939,26.091106&#39;, &#39;distance&#39;: &#39;332.985&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;地名地址信息;普通地名;村庄级地名&#39;}, {&#39;id&#39;: &#39;B0FFHLLQMG&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: [], &#39;poiweight&#39;: &#39;0.115628&#39;, &#39;name&#39;: &#39;东二环泰禾广场西区一期SOHO6号楼&#39;, &#39;location&#39;: &#39;119.335468,26.092584&#39;, &#39;distance&#39;: &#39;306.374&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;商务住宅;楼宇;商住两用楼宇&#39;}, {&#39;id&#39;: &#39;B0FFH4X6HI&#39;, &#39;direction&#39;: &#39;南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;连江北路喜盈门家居广场5号&#39;, &#39;poiweight&#39;: &#39;0.168303&#39;, &#39;name&#39;: &#39;敏亮家居生活馆&#39;, &#39;location&#39;: &#39;119.337437,26.087349&#39;, &#39;distance&#39;: &#39;312.628&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;购物服务;家居建材市场;家具城&#39;}, {&#39;id&#39;: &#39;B0FFLCVA9L&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: [], &#39;poiweight&#39;: &#39;0.170963&#39;, &#39;name&#39;: &#39;SOHOB2&#39;, &#39;location&#39;: &#39;119.339922,26.090487&#39;, &#39;distance&#39;: &#39;314.916&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;商务住宅;楼宇;商务写字楼&#39;}, {&#39;id&#39;: &#39;B0FFHF0HDG&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;岳峰镇连江北路与化工路交叉处东二环泰禾广场(一期)6号楼1层02商业、2层02商业服务用房&#39;, &#39;poiweight&#39;: &#39;0.413476&#39;, &#39;name&#39;: &#39;中国建设银行(东二环支行)&#39;, &#39;location&#39;: &#39;119.335429,26.092663&#39;, &#39;distance&#39;: &#39;316.003&#39;, &#39;tel&#39;: &#39;0591-83011786&#39;, &#39;type&#39;: &#39;金融保险服务;银行;中国建设银行&#39;}]}, &#39;info&#39;: &#39;OK&#39;, &#39;infocode&#39;: &#39;10000&#39;}
</pre>
</div>
</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>0</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>status</th>
      <td>1</td>
    </tr>
    <tr>
      <th>info</th>
      <td>OK</td>
    </tr>
    <tr>
      <th>infocode</th>
      <td>10000</td>
    </tr>
    <tr>
      <th>regeocode.roads</th>
      <td>[{'id': '0591G50F023043604849', 'location': '1...</td>
    </tr>
    <tr>
      <th>regeocode.roadinters</th>
      <td>[{'second_name': '竹屿路', 'first_id': '0591G50F0...</td>
    </tr>
    <tr>
      <th>regeocode.formatted_address</th>
      <td>福建省福州市晋安区岳峰镇汉拿山(泰禾广场西区)泰禾广场(东二环店)</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.city</th>
      <td>福州市</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.province</th>
      <td>福建省</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.adcode</th>
      <td>350111</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.district</th>
      <td>晋安区</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.towncode</th>
      <td>350111102000</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.number</th>
      <td>22号楼</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.location</th>
      <td>119.336414,26.0899031</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.direction</th>
      <td>西南</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.distance</th>
      <td>44.2383</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.street</th>
      <td>连江北路</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.country</th>
      <td>中国</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.township</th>
      <td>岳峰镇</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.businessAreas</th>
      <td>[{'location': '119.327784,26.08602', 'name': '...</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.building.name</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.building.type</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.neighborhood.name</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.neighborhood.type</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.citycode</th>
      <td>0591</td>
    </tr>
    <tr>
      <th>regeocode.aois</th>
      <td>[{'area': '201385.057840', 'type': '060101', '...</td>
    </tr>
    <tr>
      <th>regeocode.pois</th>
      <td>[{'id': 'B0FFF01ETV', 'direction': '西北', 'busi...</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="A-3-&#20840;&#37096;&#36870;&#22320;&#29702;&#32534;&#30721;&#20998;&#26512;&#32454;&#33410;">A-3 &#20840;&#37096;&#36870;&#22320;&#29702;&#32534;&#30721;&#20998;&#26512;&#32454;&#33410;<a class="anchor-link" href="#A-3-&#20840;&#37096;&#36870;&#22320;&#29702;&#32534;&#30721;&#20998;&#26512;&#32454;&#33410;">&#182;</a></h3><ol>
<li>大家先思考一个问题，你给高德的地址和他给你的，是不是它大气的多？</li>
<li>这些细节哪些是有用的？假设用户给你一个地址，和一定的诉求，我们是不是可以推荐一些POI地址？</li>
</ol>
<p><img src="http://static.leiphone.com/uploads/new/article/740_740/201612/5860bb12da0e0.png?imageMogr2/format/jpg/quality/90" alt=""></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[6]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># A-3 分析细节</span>
<span class="n">roads</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">泰禾逆地理编码_all</span><span class="p">[</span><span class="s1">&#39;regeocode&#39;</span><span class="p">][</span><span class="s1">&#39;roads&#39;</span><span class="p">])</span>
<span class="n">roadinters</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">泰禾逆地理编码_all</span><span class="p">[</span><span class="s1">&#39;regeocode&#39;</span><span class="p">][</span><span class="s1">&#39;roadinters&#39;</span><span class="p">])</span>
<span class="n">aois</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">泰禾逆地理编码_all</span><span class="p">[</span><span class="s1">&#39;regeocode&#39;</span><span class="p">][</span><span class="s1">&#39;aois&#39;</span><span class="p">])</span>
<span class="n">pois</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">泰禾逆地理编码_all</span><span class="p">[</span><span class="s1">&#39;regeocode&#39;</span><span class="p">][</span><span class="s1">&#39;pois&#39;</span><span class="p">])</span>
<span class="n">display</span><span class="p">(</span><span class="n">roads</span><span class="p">,</span><span class="n">roadinters</span><span class="p">,</span><span class="n">aois</span><span class="p">,</span><span class="n">pois</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>id</th>
      <th>location</th>
      <th>direction</th>
      <th>name</th>
      <th>distance</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>0591G50F023043604849</td>
      <td>119.338,26.0898</td>
      <td>西</td>
      <td>竹屿路</td>
      <td>99.4605</td>
    </tr>
    <tr>
      <th>1</th>
      <td>0591G50F0230431211</td>
      <td>119.337,26.0891</td>
      <td>北</td>
      <td>化工路</td>
      <td>118.864</td>
    </tr>
    <tr>
      <th>2</th>
      <td>0591G50F023043336</td>
      <td>119.338,26.089</td>
      <td>西北</td>
      <td>茶会路</td>
      <td>155.829</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>second_name</th>
      <th>first_id</th>
      <th>second_id</th>
      <th>location</th>
      <th>distance</th>
      <th>first_name</th>
      <th>direction</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>竹屿路</td>
      <td>0591G50F0230431211</td>
      <td>0591G50F023043604849</td>
      <td>119.3377947,26.08910972</td>
      <td>148.529</td>
      <td>化工路</td>
      <td>西北</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>area</th>
      <th>type</th>
      <th>id</th>
      <th>location</th>
      <th>adcode</th>
      <th>name</th>
      <th>distance</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>201385.057840</td>
      <td>060101</td>
      <td>B0FFF01ETV</td>
      <td>119.336008,26.091043</td>
      <td>350111</td>
      <td>泰禾广场(东二环店)</td>
      <td>0</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>id</th>
      <th>direction</th>
      <th>businessarea</th>
      <th>address</th>
      <th>poiweight</th>
      <th>name</th>
      <th>location</th>
      <th>distance</th>
      <th>tel</th>
      <th>type</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>B0FFF01ETV</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>岳峰镇竹屿路6号</td>
      <td>0.519804</td>
      <td>泰禾广场(东二环店)</td>
      <td>119.336008,26.091043</td>
      <td>131.133</td>
      <td>0591-63169999</td>
      <td>购物服务;商场;购物中心</td>
    </tr>
    <tr>
      <th>1</th>
      <td>B0FFJBAYZM</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>竹屿路6号泰禾广场西区L5层</td>
      <td>0.205674</td>
      <td>汉拿山(泰禾广场西区)</td>
      <td>119.336597,26.090416</td>
      <td>40.3777</td>
      <td>0591-63168689</td>
      <td>餐饮服务;外国餐厅;韩国料理</td>
    </tr>
    <tr>
      <th>2</th>
      <td>B0FFKU0O6Y</td>
      <td>北</td>
      <td>岳峰</td>
      <td>竹屿路6号泰禾广场西区L6层</td>
      <td>0.194988</td>
      <td>越城记(泰禾广场西区)</td>
      <td>119.336715,26.090849</td>
      <td>83.5656</td>
      <td>0591-83215757</td>
      <td>餐饮服务;中餐厅;中餐厅</td>
    </tr>
    <tr>
      <th>3</th>
      <td>B0FFKU0O6F</td>
      <td>西</td>
      <td>岳峰</td>
      <td>连江路与化工路交汇处东二环泰禾广场22号楼5层L523</td>
      <td>0.194988</td>
      <td>那一家(泰禾广场西区)</td>
      <td>119.335654,26.089788</td>
      <td>119.452</td>
      <td>0591-87326617;13559149397;18559856251</td>
      <td>餐饮服务;中餐厅;中餐厅</td>
    </tr>
    <tr>
      <th>4</th>
      <td>B0FFGG0O6M</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>竹屿路6号泰禾广场西区B1层</td>
      <td>0.303971</td>
      <td>香港满记甜品(泰禾广场西区)</td>
      <td>119.336192,26.090831</td>
      <td>101.26</td>
      <td>0591-87301520;0591-87322265</td>
      <td>餐饮服务;甜品店;甜品店</td>
    </tr>
    <tr>
      <th>5</th>
      <td>B0FFKU0OBB</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>竹屿路6号</td>
      <td>0.3037</td>
      <td>泰禾广场西区</td>
      <td>119.336436,26.090321</td>
      <td>43.6474</td>
      <td>[]</td>
      <td>购物服务;商场;购物中心</td>
    </tr>
    <tr>
      <th>6</th>
      <td>B0FFG9AN5L</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>岳峰镇竹屿路6号东二环泰禾城市广场</td>
      <td>0.205175</td>
      <td>水秀广场</td>
      <td>119.334045,26.091683</td>
      <td>326.403</td>
      <td>[]</td>
      <td>风景名胜;风景名胜;风景名胜</td>
    </tr>
    <tr>
      <th>7</th>
      <td>B0FFF3X852</td>
      <td>东南</td>
      <td>岳峰</td>
      <td>喜盈门路1号</td>
      <td>0.170025</td>
      <td>福建鑫天地家具城</td>
      <td>119.337508,26.088505</td>
      <td>191.127</td>
      <td>0591-28066385</td>
      <td>购物服务;家居建材市场;家具城</td>
    </tr>
    <tr>
      <th>8</th>
      <td>B0FFKU0NW7</td>
      <td>东</td>
      <td>岳峰</td>
      <td>竹屿路6号泰禾广场东区B1层</td>
      <td>0.171953</td>
      <td>英孚教育青少儿英语(泰禾广场东区)</td>
      <td>119.338181,26.089937</td>
      <td>139.326</td>
      <td>[]</td>
      <td>科教文化服务;培训机构;培训机构</td>
    </tr>
    <tr>
      <th>9</th>
      <td>B0FFIII8JK</td>
      <td>东</td>
      <td>岳峰</td>
      <td>东二环泰禾广场东区Mall</td>
      <td>0.354709</td>
      <td>太空向往主题公园(东二环泰禾广场东区Mall)</td>
      <td>119.338452,26.090096</td>
      <td>165.173</td>
      <td>[]</td>
      <td>风景名胜;公园广场;公园</td>
    </tr>
    <tr>
      <th>10</th>
      <td>B0FFFA9YP7</td>
      <td>西</td>
      <td>岳峰</td>
      <td>晋安区</td>
      <td>0.284073</td>
      <td>岳峰高架桥</td>
      <td>119.333046,26.090702</td>
      <td>380.612</td>
      <td>[]</td>
      <td>地名地址信息;交通地名;立交桥</td>
    </tr>
    <tr>
      <th>11</th>
      <td>B0FFJQQCHP</td>
      <td>北</td>
      <td>岳峰</td>
      <td>横屿路东二环泰禾11号公馆2层</td>
      <td>0.180294</td>
      <td>新爱婴国际早教(东泰禾中心)</td>
      <td>119.337145,26.091853</td>
      <td>197.873</td>
      <td>0591-87312622</td>
      <td>科教文化服务;科教文化场所;科教文化场所</td>
    </tr>
    <tr>
      <th>12</th>
      <td>B0FFHO85MA</td>
      <td>南</td>
      <td>岳峰</td>
      <td>连江北路293号</td>
      <td>0.166497</td>
      <td>喜盈门(福州)建材家具广场</td>
      <td>119.336276,26.086804</td>
      <td>370.338</td>
      <td>0591-88050511;0591-88055300</td>
      <td>购物服务;家居建材市场;家具建材综合市场</td>
    </tr>
    <tr>
      <th>13</th>
      <td>B0FFGJ67L3</td>
      <td>东南</td>
      <td>岳峰</td>
      <td>连江北路293-2新南方大厦510</td>
      <td>0.134118</td>
      <td>福州捷诚房屋征收工程处</td>
      <td>119.338620,26.087260</td>
      <td>364.584</td>
      <td>[]</td>
      <td>政府机构及社会团体;政府机关;区县级政府及事业单位</td>
    </tr>
    <tr>
      <th>14</th>
      <td>B024F05XAS</td>
      <td>东南</td>
      <td>岳峰</td>
      <td>连江北路293-2号</td>
      <td>0.390248</td>
      <td>福州新南方家居建材旗舰中心</td>
      <td>119.338583,26.087129</td>
      <td>375.523</td>
      <td>[]</td>
      <td>购物服务;家居建材市场;家具建材综合市场</td>
    </tr>
    <tr>
      <th>15</th>
      <td>B0FFHZUIKZ</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>岳峰镇竹屿路6号泰禾城市广场商业中心17号楼2层</td>
      <td>0.162355</td>
      <td>英孚教育青少儿英语(东二环泰禾中心)</td>
      <td>119.335070,26.091403</td>
      <td>225.263</td>
      <td>4001079100</td>
      <td>科教文化服务;培训机构;培训机构</td>
    </tr>
    <tr>
      <th>16</th>
      <td>B0FFGG0IX2</td>
      <td>西南</td>
      <td>岳峰</td>
      <td>东二环泰禾广场22号楼B102-3</td>
      <td>0.435039</td>
      <td>宝岛眼镜(福州东二环泰禾广场店)</td>
      <td>119.336394,26.089932</td>
      <td>44.532</td>
      <td>0591-87315753</td>
      <td>购物服务;专卖店;眼镜店</td>
    </tr>
    <tr>
      <th>17</th>
      <td>B0FFGMS9C5</td>
      <td>西南</td>
      <td>岳峰</td>
      <td>化工路与竹屿路交叉口竹泰禾广场B1层</td>
      <td>0.456295</td>
      <td>鲑鱼工坊(东二环泰禾店)</td>
      <td>119.336410,26.089901</td>
      <td>44.6828</td>
      <td>18065078071</td>
      <td>餐饮服务;中餐厅;中餐厅</td>
    </tr>
    <tr>
      <th>18</th>
      <td>B024F000CD</td>
      <td>西南</td>
      <td>岳峰</td>
      <td>连江北路253号</td>
      <td>0.240627</td>
      <td>福州佳通第一塑料有限公司</td>
      <td>119.335322,26.087996</td>
      <td>276.63</td>
      <td>[]</td>
      <td>公司企业;公司;公司</td>
    </tr>
    <tr>
      <th>19</th>
      <td>B0FFHMX11D</td>
      <td>东</td>
      <td>岳峰</td>
      <td>化工路</td>
      <td>0.287082</td>
      <td>泰禾城市广场东区儿童MALL</td>
      <td>119.339291,26.090150</td>
      <td>249.039</td>
      <td>0591-63160999</td>
      <td>商务住宅;住宅区;住宅小区</td>
    </tr>
    <tr>
      <th>20</th>
      <td>B0FFGJ6DNT</td>
      <td>东南</td>
      <td>岳峰</td>
      <td>化工路38号</td>
      <td>0.160973</td>
      <td>林珍装饰材料有限公司</td>
      <td>119.338523,26.088908</td>
      <td>217.438</td>
      <td>0591-83613223;18950396001</td>
      <td>公司企业;公司;公司</td>
    </tr>
    <tr>
      <th>21</th>
      <td>B0FFKU0OAV</td>
      <td>东</td>
      <td>岳峰</td>
      <td>竹屿路6号</td>
      <td>0.3037</td>
      <td>泰禾广场东区</td>
      <td>119.339455,26.090056</td>
      <td>265.394</td>
      <td>[]</td>
      <td>购物服务;商场;购物中心</td>
    </tr>
    <tr>
      <th>22</th>
      <td>B0FFIAVDVB</td>
      <td>西</td>
      <td>岳峰</td>
      <td>东二环泰禾广场21号楼121(商场2号门音乐喷泉旁)</td>
      <td>0.546774</td>
      <td>胡桃里音乐酒馆(东二环泰禾店)</td>
      <td>119.335132,26.090769</td>
      <td>182.21</td>
      <td>0591-88033929</td>
      <td>餐饮服务;中餐厅;中餐厅</td>
    </tr>
    <tr>
      <th>23</th>
      <td>B0FFGG7M4L</td>
      <td>东南</td>
      <td>岳峰</td>
      <td>化工路38号元福建材街A6号</td>
      <td>0.159434</td>
      <td>佰家汇地板</td>
      <td>119.339332,26.088229</td>
      <td>327.693</td>
      <td>13799408900;13459403618</td>
      <td>购物服务;家居建材市场;家居建材市场</td>
    </tr>
    <tr>
      <th>24</th>
      <td>B0FFHHVP0V</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>东二环泰禾广场6号楼1-2层</td>
      <td>0.308699</td>
      <td>中国工商银行(福州城东支行)</td>
      <td>119.335664,26.092649</td>
      <td>305.116</td>
      <td>0591-87326989</td>
      <td>金融保险服务;银行;中国工商银行</td>
    </tr>
    <tr>
      <th>25</th>
      <td>B024F04OJH</td>
      <td>东</td>
      <td>岳峰</td>
      <td>晋安区</td>
      <td>0.392054</td>
      <td>竹屿村</td>
      <td>119.339939,26.091106</td>
      <td>332.985</td>
      <td>[]</td>
      <td>地名地址信息;普通地名;村庄级地名</td>
    </tr>
    <tr>
      <th>26</th>
      <td>B0FFHLLQMG</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>[]</td>
      <td>0.115628</td>
      <td>东二环泰禾广场西区一期SOHO6号楼</td>
      <td>119.335468,26.092584</td>
      <td>306.374</td>
      <td>[]</td>
      <td>商务住宅;楼宇;商住两用楼宇</td>
    </tr>
    <tr>
      <th>27</th>
      <td>B0FFH4X6HI</td>
      <td>南</td>
      <td>岳峰</td>
      <td>连江北路喜盈门家居广场5号</td>
      <td>0.168303</td>
      <td>敏亮家居生活馆</td>
      <td>119.337437,26.087349</td>
      <td>312.628</td>
      <td>[]</td>
      <td>购物服务;家居建材市场;家具城</td>
    </tr>
    <tr>
      <th>28</th>
      <td>B0FFLCVA9L</td>
      <td>东</td>
      <td>岳峰</td>
      <td>[]</td>
      <td>0.170963</td>
      <td>SOHOB2</td>
      <td>119.339922,26.090487</td>
      <td>314.916</td>
      <td>[]</td>
      <td>商务住宅;楼宇;商务写字楼</td>
    </tr>
    <tr>
      <th>29</th>
      <td>B0FFHF0HDG</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>岳峰镇连江北路与化工路交叉处东二环泰禾广场(一期)6号楼1层02商业、2层02商业服务用房</td>
      <td>0.413476</td>
      <td>中国建设银行(东二环支行)</td>
      <td>119.335429,26.092663</td>
      <td>316.003</td>
      <td>0591-83011786</td>
      <td>金融保险服务;银行;中国建设银行</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#23398;&#29983;&#32451;&#20064;&#65306;">&#23398;&#29983;&#32451;&#20064;&#65306;<a class="anchor-link" href="#&#23398;&#29983;&#32451;&#20064;&#65306;">&#182;</a></h3><ol>
<li>观察和练习其他参数</li>
<li>想得到更大范围的搜索POI如何操作</li>
<li><ul>
<li>请pandas学过的同学对address进行分组groupby练习，尝试找寻不同根类地址下的type（可选用你所找寻的地址，不一定用中大南方）</li>
</ul>
</li>
<li><ul>
<li>请思考如何对不同类型的服务进行分类？如美食、旅馆、加油站...等
<img src="lianxi01.png" alt=""></li>
</ul>
</li>
</ol>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[7]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">泰禾广场逆地理编码_all</span> <span class="o">=</span> <span class="n">regeocode</span><span class="p">(</span><span class="n">泰禾地理编码</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s2">&quot;all&quot;</span><span class="p">,</span><span class="n">radius</span><span class="o">=</span><span class="mi">3000</span><span class="p">,</span><span class="n">roadlevel</span><span class="o">=</span><span class="mi">0</span><span class="p">,)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">泰禾广场逆地理编码_all</span><span class="p">)</span>
<span class="n">df_泰禾广场逆地理编码_all</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">泰禾广场逆地理编码_all</span><span class="p">)</span><span class="o">.</span><span class="n">T</span>
<span class="n">display</span><span class="p">(</span><span class="n">df_泰禾广场逆地理编码_all</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>{&#39;status&#39;: &#39;1&#39;, &#39;regeocode&#39;: {&#39;roads&#39;: [{&#39;id&#39;: &#39;0591G50F023043604849&#39;, &#39;location&#39;: &#39;119.338,26.0898&#39;, &#39;direction&#39;: &#39;西&#39;, &#39;name&#39;: &#39;竹屿路&#39;, &#39;distance&#39;: &#39;99.4605&#39;}, {&#39;id&#39;: &#39;0591G50F0230431211&#39;, &#39;location&#39;: &#39;119.337,26.0891&#39;, &#39;direction&#39;: &#39;北&#39;, &#39;name&#39;: &#39;化工路&#39;, &#39;distance&#39;: &#39;118.864&#39;}, {&#39;id&#39;: &#39;0591G50F023043336&#39;, &#39;location&#39;: &#39;119.338,26.089&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;name&#39;: &#39;茶会路&#39;, &#39;distance&#39;: &#39;155.829&#39;}], &#39;roadinters&#39;: [{&#39;second_name&#39;: &#39;竹屿路&#39;, &#39;first_id&#39;: &#39;0591G50F0230431211&#39;, &#39;second_id&#39;: &#39;0591G50F023043604849&#39;, &#39;location&#39;: &#39;119.3377947,26.08910972&#39;, &#39;distance&#39;: &#39;148.529&#39;, &#39;first_name&#39;: &#39;化工路&#39;, &#39;direction&#39;: &#39;西北&#39;}], &#39;formatted_address&#39;: &#39;福建省福州市晋安区岳峰镇汉拿山(泰禾广场西区)泰禾广场(东二环店)&#39;, &#39;addressComponent&#39;: {&#39;city&#39;: &#39;福州市&#39;, &#39;province&#39;: &#39;福建省&#39;, &#39;adcode&#39;: &#39;350111&#39;, &#39;district&#39;: &#39;晋安区&#39;, &#39;towncode&#39;: &#39;350111102000&#39;, &#39;streetNumber&#39;: {&#39;number&#39;: &#39;22号楼&#39;, &#39;location&#39;: &#39;119.336414,26.0899031&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;distance&#39;: &#39;44.2383&#39;, &#39;street&#39;: &#39;连江北路&#39;}, &#39;country&#39;: &#39;中国&#39;, &#39;township&#39;: &#39;岳峰镇&#39;, &#39;businessAreas&#39;: [{&#39;location&#39;: &#39;119.327784,26.08602&#39;, &#39;name&#39;: &#39;岳峰&#39;, &#39;id&#39;: &#39;350111&#39;}, {&#39;location&#39;: &#39;119.356221,26.070663&#39;, &#39;name&#39;: &#39;鼓山&#39;, &#39;id&#39;: &#39;350111&#39;}, {&#39;location&#39;: &#39;119.338741,26.082575&#39;, &#39;name&#39;: &#39;茶会村&#39;, &#39;id&#39;: &#39;350111&#39;}], &#39;building&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;neighborhood&#39;: {&#39;name&#39;: [], &#39;type&#39;: []}, &#39;citycode&#39;: &#39;0591&#39;}, &#39;aois&#39;: [{&#39;area&#39;: &#39;201385.057840&#39;, &#39;type&#39;: &#39;060101&#39;, &#39;id&#39;: &#39;B0FFF01ETV&#39;, &#39;location&#39;: &#39;119.336008,26.091043&#39;, &#39;adcode&#39;: &#39;350111&#39;, &#39;name&#39;: &#39;泰禾广场(东二环店)&#39;, &#39;distance&#39;: &#39;0&#39;}], &#39;pois&#39;: [{&#39;id&#39;: &#39;B0FFF01ETV&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;岳峰镇竹屿路6号&#39;, &#39;poiweight&#39;: &#39;0.519804&#39;, &#39;name&#39;: &#39;泰禾广场(东二环店)&#39;, &#39;location&#39;: &#39;119.336008,26.091043&#39;, &#39;distance&#39;: &#39;131.133&#39;, &#39;tel&#39;: &#39;0591-63169999&#39;, &#39;type&#39;: &#39;购物服务;商场;购物中心&#39;}, {&#39;id&#39;: &#39;B0FFJBAYZM&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;竹屿路6号泰禾广场西区L5层&#39;, &#39;poiweight&#39;: &#39;0.205674&#39;, &#39;name&#39;: &#39;汉拿山(泰禾广场西区)&#39;, &#39;location&#39;: &#39;119.336597,26.090416&#39;, &#39;distance&#39;: &#39;40.3777&#39;, &#39;tel&#39;: &#39;0591-63168689&#39;, &#39;type&#39;: &#39;餐饮服务;外国餐厅;韩国料理&#39;}, {&#39;id&#39;: &#39;B0FFKU0O6Y&#39;, &#39;direction&#39;: &#39;北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;竹屿路6号泰禾广场西区L6层&#39;, &#39;poiweight&#39;: &#39;0.194988&#39;, &#39;name&#39;: &#39;越城记(泰禾广场西区)&#39;, &#39;location&#39;: &#39;119.336715,26.090849&#39;, &#39;distance&#39;: &#39;83.5656&#39;, &#39;tel&#39;: &#39;0591-83215757&#39;, &#39;type&#39;: &#39;餐饮服务;中餐厅;中餐厅&#39;}, {&#39;id&#39;: &#39;B0FFKU0O6F&#39;, &#39;direction&#39;: &#39;西&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;连江路与化工路交汇处东二环泰禾广场22号楼5层L523&#39;, &#39;poiweight&#39;: &#39;0.194988&#39;, &#39;name&#39;: &#39;那一家(泰禾广场西区)&#39;, &#39;location&#39;: &#39;119.335654,26.089788&#39;, &#39;distance&#39;: &#39;119.452&#39;, &#39;tel&#39;: &#39;0591-87326617;13559149397;18559856251&#39;, &#39;type&#39;: &#39;餐饮服务;中餐厅;中餐厅&#39;}, {&#39;id&#39;: &#39;B0FFGG0O6M&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;竹屿路6号泰禾广场西区B1层&#39;, &#39;poiweight&#39;: &#39;0.303971&#39;, &#39;name&#39;: &#39;香港满记甜品(泰禾广场西区)&#39;, &#39;location&#39;: &#39;119.336192,26.090831&#39;, &#39;distance&#39;: &#39;101.26&#39;, &#39;tel&#39;: &#39;0591-87301520;0591-87322265&#39;, &#39;type&#39;: &#39;餐饮服务;甜品店;甜品店&#39;}, {&#39;id&#39;: &#39;B0FFKU0OBB&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;竹屿路6号&#39;, &#39;poiweight&#39;: &#39;0.3037&#39;, &#39;name&#39;: &#39;泰禾广场西区&#39;, &#39;location&#39;: &#39;119.336436,26.090321&#39;, &#39;distance&#39;: &#39;43.6474&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;购物服务;商场;购物中心&#39;}, {&#39;id&#39;: &#39;B0FFG9AN5L&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;岳峰镇竹屿路6号东二环泰禾城市广场&#39;, &#39;poiweight&#39;: &#39;0.205175&#39;, &#39;name&#39;: &#39;水秀广场&#39;, &#39;location&#39;: &#39;119.334045,26.091683&#39;, &#39;distance&#39;: &#39;326.403&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;风景名胜;风景名胜;风景名胜&#39;}, {&#39;id&#39;: &#39;B0FFF3X852&#39;, &#39;direction&#39;: &#39;东南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;喜盈门路1号&#39;, &#39;poiweight&#39;: &#39;0.170025&#39;, &#39;name&#39;: &#39;福建鑫天地家具城&#39;, &#39;location&#39;: &#39;119.337508,26.088505&#39;, &#39;distance&#39;: &#39;191.127&#39;, &#39;tel&#39;: &#39;0591-28066385&#39;, &#39;type&#39;: &#39;购物服务;家居建材市场;家具城&#39;}, {&#39;id&#39;: &#39;B0FFKU0NW7&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;竹屿路6号泰禾广场东区B1层&#39;, &#39;poiweight&#39;: &#39;0.171953&#39;, &#39;name&#39;: &#39;英孚教育青少儿英语(泰禾广场东区)&#39;, &#39;location&#39;: &#39;119.338181,26.089937&#39;, &#39;distance&#39;: &#39;139.326&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;科教文化服务;培训机构;培训机构&#39;}, {&#39;id&#39;: &#39;B0FFIII8JK&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;东二环泰禾广场东区Mall&#39;, &#39;poiweight&#39;: &#39;0.354709&#39;, &#39;name&#39;: &#39;太空向往主题公园(东二环泰禾广场东区Mall)&#39;, &#39;location&#39;: &#39;119.338452,26.090096&#39;, &#39;distance&#39;: &#39;165.173&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;风景名胜;公园广场;公园&#39;}, {&#39;id&#39;: &#39;B0FFFA9YP7&#39;, &#39;direction&#39;: &#39;西&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;晋安区&#39;, &#39;poiweight&#39;: &#39;0.284073&#39;, &#39;name&#39;: &#39;岳峰高架桥&#39;, &#39;location&#39;: &#39;119.333046,26.090702&#39;, &#39;distance&#39;: &#39;380.612&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;地名地址信息;交通地名;立交桥&#39;}, {&#39;id&#39;: &#39;B0FFJQQCHP&#39;, &#39;direction&#39;: &#39;北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;横屿路东二环泰禾11号公馆2层&#39;, &#39;poiweight&#39;: &#39;0.180294&#39;, &#39;name&#39;: &#39;新爱婴国际早教(东泰禾中心)&#39;, &#39;location&#39;: &#39;119.337145,26.091853&#39;, &#39;distance&#39;: &#39;197.873&#39;, &#39;tel&#39;: &#39;0591-87312622&#39;, &#39;type&#39;: &#39;科教文化服务;科教文化场所;科教文化场所&#39;}, {&#39;id&#39;: &#39;B0FFHO85MA&#39;, &#39;direction&#39;: &#39;南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;连江北路293号&#39;, &#39;poiweight&#39;: &#39;0.166497&#39;, &#39;name&#39;: &#39;喜盈门(福州)建材家具广场&#39;, &#39;location&#39;: &#39;119.336276,26.086804&#39;, &#39;distance&#39;: &#39;370.338&#39;, &#39;tel&#39;: &#39;0591-88050511;0591-88055300&#39;, &#39;type&#39;: &#39;购物服务;家居建材市场;家具建材综合市场&#39;}, {&#39;id&#39;: &#39;B0FFGJ67L3&#39;, &#39;direction&#39;: &#39;东南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;连江北路293-2新南方大厦510&#39;, &#39;poiweight&#39;: &#39;0.134118&#39;, &#39;name&#39;: &#39;福州捷诚房屋征收工程处&#39;, &#39;location&#39;: &#39;119.338620,26.087260&#39;, &#39;distance&#39;: &#39;364.584&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;政府机构及社会团体;政府机关;区县级政府及事业单位&#39;}, {&#39;id&#39;: &#39;B024F05XAS&#39;, &#39;direction&#39;: &#39;东南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;连江北路293-2号&#39;, &#39;poiweight&#39;: &#39;0.390248&#39;, &#39;name&#39;: &#39;福州新南方家居建材旗舰中心&#39;, &#39;location&#39;: &#39;119.338583,26.087129&#39;, &#39;distance&#39;: &#39;375.523&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;购物服务;家居建材市场;家具建材综合市场&#39;}, {&#39;id&#39;: &#39;B0FFHZUIKZ&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;岳峰镇竹屿路6号泰禾城市广场商业中心17号楼2层&#39;, &#39;poiweight&#39;: &#39;0.162355&#39;, &#39;name&#39;: &#39;英孚教育青少儿英语(东二环泰禾中心)&#39;, &#39;location&#39;: &#39;119.335070,26.091403&#39;, &#39;distance&#39;: &#39;225.263&#39;, &#39;tel&#39;: &#39;4001079100&#39;, &#39;type&#39;: &#39;科教文化服务;培训机构;培训机构&#39;}, {&#39;id&#39;: &#39;B0FFGG0IX2&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;东二环泰禾广场22号楼B102-3&#39;, &#39;poiweight&#39;: &#39;0.435039&#39;, &#39;name&#39;: &#39;宝岛眼镜(福州东二环泰禾广场店)&#39;, &#39;location&#39;: &#39;119.336394,26.089932&#39;, &#39;distance&#39;: &#39;44.532&#39;, &#39;tel&#39;: &#39;0591-87315753&#39;, &#39;type&#39;: &#39;购物服务;专卖店;眼镜店&#39;}, {&#39;id&#39;: &#39;B0FFGMS9C5&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;化工路与竹屿路交叉口竹泰禾广场B1层&#39;, &#39;poiweight&#39;: &#39;0.456295&#39;, &#39;name&#39;: &#39;鲑鱼工坊(东二环泰禾店)&#39;, &#39;location&#39;: &#39;119.336410,26.089901&#39;, &#39;distance&#39;: &#39;44.6828&#39;, &#39;tel&#39;: &#39;18065078071&#39;, &#39;type&#39;: &#39;餐饮服务;中餐厅;中餐厅&#39;}, {&#39;id&#39;: &#39;B024F000CD&#39;, &#39;direction&#39;: &#39;西南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;连江北路253号&#39;, &#39;poiweight&#39;: &#39;0.240627&#39;, &#39;name&#39;: &#39;福州佳通第一塑料有限公司&#39;, &#39;location&#39;: &#39;119.335322,26.087996&#39;, &#39;distance&#39;: &#39;276.63&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;公司企业;公司;公司&#39;}, {&#39;id&#39;: &#39;B0FFHMX11D&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;化工路&#39;, &#39;poiweight&#39;: &#39;0.287082&#39;, &#39;name&#39;: &#39;泰禾城市广场东区儿童MALL&#39;, &#39;location&#39;: &#39;119.339291,26.090150&#39;, &#39;distance&#39;: &#39;249.039&#39;, &#39;tel&#39;: &#39;0591-63160999&#39;, &#39;type&#39;: &#39;商务住宅;住宅区;住宅小区&#39;}, {&#39;id&#39;: &#39;B0FFGJ6DNT&#39;, &#39;direction&#39;: &#39;东南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;化工路38号&#39;, &#39;poiweight&#39;: &#39;0.160973&#39;, &#39;name&#39;: &#39;林珍装饰材料有限公司&#39;, &#39;location&#39;: &#39;119.338523,26.088908&#39;, &#39;distance&#39;: &#39;217.438&#39;, &#39;tel&#39;: &#39;0591-83613223;18950396001&#39;, &#39;type&#39;: &#39;公司企业;公司;公司&#39;}, {&#39;id&#39;: &#39;B0FFKU0OAV&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;竹屿路6号&#39;, &#39;poiweight&#39;: &#39;0.3037&#39;, &#39;name&#39;: &#39;泰禾广场东区&#39;, &#39;location&#39;: &#39;119.339455,26.090056&#39;, &#39;distance&#39;: &#39;265.394&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;购物服务;商场;购物中心&#39;}, {&#39;id&#39;: &#39;B0FFIAVDVB&#39;, &#39;direction&#39;: &#39;西&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;东二环泰禾广场21号楼121(商场2号门音乐喷泉旁)&#39;, &#39;poiweight&#39;: &#39;0.546774&#39;, &#39;name&#39;: &#39;胡桃里音乐酒馆(东二环泰禾店)&#39;, &#39;location&#39;: &#39;119.335132,26.090769&#39;, &#39;distance&#39;: &#39;182.21&#39;, &#39;tel&#39;: &#39;0591-88033929&#39;, &#39;type&#39;: &#39;餐饮服务;中餐厅;中餐厅&#39;}, {&#39;id&#39;: &#39;B0FFGG7M4L&#39;, &#39;direction&#39;: &#39;东南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;化工路38号元福建材街A6号&#39;, &#39;poiweight&#39;: &#39;0.159434&#39;, &#39;name&#39;: &#39;佰家汇地板&#39;, &#39;location&#39;: &#39;119.339332,26.088229&#39;, &#39;distance&#39;: &#39;327.693&#39;, &#39;tel&#39;: &#39;13799408900;13459403618&#39;, &#39;type&#39;: &#39;购物服务;家居建材市场;家居建材市场&#39;}, {&#39;id&#39;: &#39;B0FFHHVP0V&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;东二环泰禾广场6号楼1-2层&#39;, &#39;poiweight&#39;: &#39;0.308699&#39;, &#39;name&#39;: &#39;中国工商银行(福州城东支行)&#39;, &#39;location&#39;: &#39;119.335664,26.092649&#39;, &#39;distance&#39;: &#39;305.116&#39;, &#39;tel&#39;: &#39;0591-87326989&#39;, &#39;type&#39;: &#39;金融保险服务;银行;中国工商银行&#39;}, {&#39;id&#39;: &#39;B024F04OJH&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;晋安区&#39;, &#39;poiweight&#39;: &#39;0.392054&#39;, &#39;name&#39;: &#39;竹屿村&#39;, &#39;location&#39;: &#39;119.339939,26.091106&#39;, &#39;distance&#39;: &#39;332.985&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;地名地址信息;普通地名;村庄级地名&#39;}, {&#39;id&#39;: &#39;B0FFHLLQMG&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: [], &#39;poiweight&#39;: &#39;0.115628&#39;, &#39;name&#39;: &#39;东二环泰禾广场西区一期SOHO6号楼&#39;, &#39;location&#39;: &#39;119.335468,26.092584&#39;, &#39;distance&#39;: &#39;306.374&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;商务住宅;楼宇;商住两用楼宇&#39;}, {&#39;id&#39;: &#39;B0FFH4X6HI&#39;, &#39;direction&#39;: &#39;南&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;连江北路喜盈门家居广场5号&#39;, &#39;poiweight&#39;: &#39;0.168303&#39;, &#39;name&#39;: &#39;敏亮家居生活馆&#39;, &#39;location&#39;: &#39;119.337437,26.087349&#39;, &#39;distance&#39;: &#39;312.628&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;购物服务;家居建材市场;家具城&#39;}, {&#39;id&#39;: &#39;B0FFLCVA9L&#39;, &#39;direction&#39;: &#39;东&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: [], &#39;poiweight&#39;: &#39;0.170963&#39;, &#39;name&#39;: &#39;SOHOB2&#39;, &#39;location&#39;: &#39;119.339922,26.090487&#39;, &#39;distance&#39;: &#39;314.916&#39;, &#39;tel&#39;: [], &#39;type&#39;: &#39;商务住宅;楼宇;商务写字楼&#39;}, {&#39;id&#39;: &#39;B0FFHF0HDG&#39;, &#39;direction&#39;: &#39;西北&#39;, &#39;businessarea&#39;: &#39;岳峰&#39;, &#39;address&#39;: &#39;岳峰镇连江北路与化工路交叉处东二环泰禾广场(一期)6号楼1层02商业、2层02商业服务用房&#39;, &#39;poiweight&#39;: &#39;0.413476&#39;, &#39;name&#39;: &#39;中国建设银行(东二环支行)&#39;, &#39;location&#39;: &#39;119.335429,26.092663&#39;, &#39;distance&#39;: &#39;316.003&#39;, &#39;tel&#39;: &#39;0591-83011786&#39;, &#39;type&#39;: &#39;金融保险服务;银行;中国建设银行&#39;}]}, &#39;info&#39;: &#39;OK&#39;, &#39;infocode&#39;: &#39;10000&#39;}
</pre>
</div>
</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>0</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>status</th>
      <td>1</td>
    </tr>
    <tr>
      <th>info</th>
      <td>OK</td>
    </tr>
    <tr>
      <th>infocode</th>
      <td>10000</td>
    </tr>
    <tr>
      <th>regeocode.roads</th>
      <td>[{'id': '0591G50F023043604849', 'location': '1...</td>
    </tr>
    <tr>
      <th>regeocode.roadinters</th>
      <td>[{'second_name': '竹屿路', 'first_id': '0591G50F0...</td>
    </tr>
    <tr>
      <th>regeocode.formatted_address</th>
      <td>福建省福州市晋安区岳峰镇汉拿山(泰禾广场西区)泰禾广场(东二环店)</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.city</th>
      <td>福州市</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.province</th>
      <td>福建省</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.adcode</th>
      <td>350111</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.district</th>
      <td>晋安区</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.towncode</th>
      <td>350111102000</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.number</th>
      <td>22号楼</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.location</th>
      <td>119.336414,26.0899031</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.direction</th>
      <td>西南</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.distance</th>
      <td>44.2383</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.streetNumber.street</th>
      <td>连江北路</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.country</th>
      <td>中国</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.township</th>
      <td>岳峰镇</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.businessAreas</th>
      <td>[{'location': '119.327784,26.08602', 'name': '...</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.building.name</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.building.type</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.neighborhood.name</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.neighborhood.type</th>
      <td>[]</td>
    </tr>
    <tr>
      <th>regeocode.addressComponent.citycode</th>
      <td>0591</td>
    </tr>
    <tr>
      <th>regeocode.aois</th>
      <td>[{'area': '201385.057840', 'type': '060101', '...</td>
    </tr>
    <tr>
      <th>regeocode.pois</th>
      <td>[{'id': 'B0FFF01ETV', 'direction': '西北', 'busi...</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[8]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">店铺</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">泰禾广场逆地理编码_all</span><span class="p">[</span><span class="s1">&#39;regeocode&#39;</span><span class="p">][</span><span class="s1">&#39;pois&#39;</span><span class="p">])</span>
<span class="n">display</span><span class="p">(</span><span class="n">店铺</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>id</th>
      <th>direction</th>
      <th>businessarea</th>
      <th>address</th>
      <th>poiweight</th>
      <th>name</th>
      <th>location</th>
      <th>distance</th>
      <th>tel</th>
      <th>type</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>B0FFF01ETV</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>岳峰镇竹屿路6号</td>
      <td>0.519804</td>
      <td>泰禾广场(东二环店)</td>
      <td>119.336008,26.091043</td>
      <td>131.133</td>
      <td>0591-63169999</td>
      <td>购物服务;商场;购物中心</td>
    </tr>
    <tr>
      <th>1</th>
      <td>B0FFJBAYZM</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>竹屿路6号泰禾广场西区L5层</td>
      <td>0.205674</td>
      <td>汉拿山(泰禾广场西区)</td>
      <td>119.336597,26.090416</td>
      <td>40.3777</td>
      <td>0591-63168689</td>
      <td>餐饮服务;外国餐厅;韩国料理</td>
    </tr>
    <tr>
      <th>2</th>
      <td>B0FFKU0O6Y</td>
      <td>北</td>
      <td>岳峰</td>
      <td>竹屿路6号泰禾广场西区L6层</td>
      <td>0.194988</td>
      <td>越城记(泰禾广场西区)</td>
      <td>119.336715,26.090849</td>
      <td>83.5656</td>
      <td>0591-83215757</td>
      <td>餐饮服务;中餐厅;中餐厅</td>
    </tr>
    <tr>
      <th>3</th>
      <td>B0FFKU0O6F</td>
      <td>西</td>
      <td>岳峰</td>
      <td>连江路与化工路交汇处东二环泰禾广场22号楼5层L523</td>
      <td>0.194988</td>
      <td>那一家(泰禾广场西区)</td>
      <td>119.335654,26.089788</td>
      <td>119.452</td>
      <td>0591-87326617;13559149397;18559856251</td>
      <td>餐饮服务;中餐厅;中餐厅</td>
    </tr>
    <tr>
      <th>4</th>
      <td>B0FFGG0O6M</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>竹屿路6号泰禾广场西区B1层</td>
      <td>0.303971</td>
      <td>香港满记甜品(泰禾广场西区)</td>
      <td>119.336192,26.090831</td>
      <td>101.26</td>
      <td>0591-87301520;0591-87322265</td>
      <td>餐饮服务;甜品店;甜品店</td>
    </tr>
    <tr>
      <th>5</th>
      <td>B0FFKU0OBB</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>竹屿路6号</td>
      <td>0.3037</td>
      <td>泰禾广场西区</td>
      <td>119.336436,26.090321</td>
      <td>43.6474</td>
      <td>[]</td>
      <td>购物服务;商场;购物中心</td>
    </tr>
    <tr>
      <th>6</th>
      <td>B0FFG9AN5L</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>岳峰镇竹屿路6号东二环泰禾城市广场</td>
      <td>0.205175</td>
      <td>水秀广场</td>
      <td>119.334045,26.091683</td>
      <td>326.403</td>
      <td>[]</td>
      <td>风景名胜;风景名胜;风景名胜</td>
    </tr>
    <tr>
      <th>7</th>
      <td>B0FFF3X852</td>
      <td>东南</td>
      <td>岳峰</td>
      <td>喜盈门路1号</td>
      <td>0.170025</td>
      <td>福建鑫天地家具城</td>
      <td>119.337508,26.088505</td>
      <td>191.127</td>
      <td>0591-28066385</td>
      <td>购物服务;家居建材市场;家具城</td>
    </tr>
    <tr>
      <th>8</th>
      <td>B0FFKU0NW7</td>
      <td>东</td>
      <td>岳峰</td>
      <td>竹屿路6号泰禾广场东区B1层</td>
      <td>0.171953</td>
      <td>英孚教育青少儿英语(泰禾广场东区)</td>
      <td>119.338181,26.089937</td>
      <td>139.326</td>
      <td>[]</td>
      <td>科教文化服务;培训机构;培训机构</td>
    </tr>
    <tr>
      <th>9</th>
      <td>B0FFIII8JK</td>
      <td>东</td>
      <td>岳峰</td>
      <td>东二环泰禾广场东区Mall</td>
      <td>0.354709</td>
      <td>太空向往主题公园(东二环泰禾广场东区Mall)</td>
      <td>119.338452,26.090096</td>
      <td>165.173</td>
      <td>[]</td>
      <td>风景名胜;公园广场;公园</td>
    </tr>
    <tr>
      <th>10</th>
      <td>B0FFFA9YP7</td>
      <td>西</td>
      <td>岳峰</td>
      <td>晋安区</td>
      <td>0.284073</td>
      <td>岳峰高架桥</td>
      <td>119.333046,26.090702</td>
      <td>380.612</td>
      <td>[]</td>
      <td>地名地址信息;交通地名;立交桥</td>
    </tr>
    <tr>
      <th>11</th>
      <td>B0FFJQQCHP</td>
      <td>北</td>
      <td>岳峰</td>
      <td>横屿路东二环泰禾11号公馆2层</td>
      <td>0.180294</td>
      <td>新爱婴国际早教(东泰禾中心)</td>
      <td>119.337145,26.091853</td>
      <td>197.873</td>
      <td>0591-87312622</td>
      <td>科教文化服务;科教文化场所;科教文化场所</td>
    </tr>
    <tr>
      <th>12</th>
      <td>B0FFHO85MA</td>
      <td>南</td>
      <td>岳峰</td>
      <td>连江北路293号</td>
      <td>0.166497</td>
      <td>喜盈门(福州)建材家具广场</td>
      <td>119.336276,26.086804</td>
      <td>370.338</td>
      <td>0591-88050511;0591-88055300</td>
      <td>购物服务;家居建材市场;家具建材综合市场</td>
    </tr>
    <tr>
      <th>13</th>
      <td>B0FFGJ67L3</td>
      <td>东南</td>
      <td>岳峰</td>
      <td>连江北路293-2新南方大厦510</td>
      <td>0.134118</td>
      <td>福州捷诚房屋征收工程处</td>
      <td>119.338620,26.087260</td>
      <td>364.584</td>
      <td>[]</td>
      <td>政府机构及社会团体;政府机关;区县级政府及事业单位</td>
    </tr>
    <tr>
      <th>14</th>
      <td>B024F05XAS</td>
      <td>东南</td>
      <td>岳峰</td>
      <td>连江北路293-2号</td>
      <td>0.390248</td>
      <td>福州新南方家居建材旗舰中心</td>
      <td>119.338583,26.087129</td>
      <td>375.523</td>
      <td>[]</td>
      <td>购物服务;家居建材市场;家具建材综合市场</td>
    </tr>
    <tr>
      <th>15</th>
      <td>B0FFHZUIKZ</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>岳峰镇竹屿路6号泰禾城市广场商业中心17号楼2层</td>
      <td>0.162355</td>
      <td>英孚教育青少儿英语(东二环泰禾中心)</td>
      <td>119.335070,26.091403</td>
      <td>225.263</td>
      <td>4001079100</td>
      <td>科教文化服务;培训机构;培训机构</td>
    </tr>
    <tr>
      <th>16</th>
      <td>B0FFGG0IX2</td>
      <td>西南</td>
      <td>岳峰</td>
      <td>东二环泰禾广场22号楼B102-3</td>
      <td>0.435039</td>
      <td>宝岛眼镜(福州东二环泰禾广场店)</td>
      <td>119.336394,26.089932</td>
      <td>44.532</td>
      <td>0591-87315753</td>
      <td>购物服务;专卖店;眼镜店</td>
    </tr>
    <tr>
      <th>17</th>
      <td>B0FFGMS9C5</td>
      <td>西南</td>
      <td>岳峰</td>
      <td>化工路与竹屿路交叉口竹泰禾广场B1层</td>
      <td>0.456295</td>
      <td>鲑鱼工坊(东二环泰禾店)</td>
      <td>119.336410,26.089901</td>
      <td>44.6828</td>
      <td>18065078071</td>
      <td>餐饮服务;中餐厅;中餐厅</td>
    </tr>
    <tr>
      <th>18</th>
      <td>B024F000CD</td>
      <td>西南</td>
      <td>岳峰</td>
      <td>连江北路253号</td>
      <td>0.240627</td>
      <td>福州佳通第一塑料有限公司</td>
      <td>119.335322,26.087996</td>
      <td>276.63</td>
      <td>[]</td>
      <td>公司企业;公司;公司</td>
    </tr>
    <tr>
      <th>19</th>
      <td>B0FFHMX11D</td>
      <td>东</td>
      <td>岳峰</td>
      <td>化工路</td>
      <td>0.287082</td>
      <td>泰禾城市广场东区儿童MALL</td>
      <td>119.339291,26.090150</td>
      <td>249.039</td>
      <td>0591-63160999</td>
      <td>商务住宅;住宅区;住宅小区</td>
    </tr>
    <tr>
      <th>20</th>
      <td>B0FFGJ6DNT</td>
      <td>东南</td>
      <td>岳峰</td>
      <td>化工路38号</td>
      <td>0.160973</td>
      <td>林珍装饰材料有限公司</td>
      <td>119.338523,26.088908</td>
      <td>217.438</td>
      <td>0591-83613223;18950396001</td>
      <td>公司企业;公司;公司</td>
    </tr>
    <tr>
      <th>21</th>
      <td>B0FFKU0OAV</td>
      <td>东</td>
      <td>岳峰</td>
      <td>竹屿路6号</td>
      <td>0.3037</td>
      <td>泰禾广场东区</td>
      <td>119.339455,26.090056</td>
      <td>265.394</td>
      <td>[]</td>
      <td>购物服务;商场;购物中心</td>
    </tr>
    <tr>
      <th>22</th>
      <td>B0FFIAVDVB</td>
      <td>西</td>
      <td>岳峰</td>
      <td>东二环泰禾广场21号楼121(商场2号门音乐喷泉旁)</td>
      <td>0.546774</td>
      <td>胡桃里音乐酒馆(东二环泰禾店)</td>
      <td>119.335132,26.090769</td>
      <td>182.21</td>
      <td>0591-88033929</td>
      <td>餐饮服务;中餐厅;中餐厅</td>
    </tr>
    <tr>
      <th>23</th>
      <td>B0FFGG7M4L</td>
      <td>东南</td>
      <td>岳峰</td>
      <td>化工路38号元福建材街A6号</td>
      <td>0.159434</td>
      <td>佰家汇地板</td>
      <td>119.339332,26.088229</td>
      <td>327.693</td>
      <td>13799408900;13459403618</td>
      <td>购物服务;家居建材市场;家居建材市场</td>
    </tr>
    <tr>
      <th>24</th>
      <td>B0FFHHVP0V</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>东二环泰禾广场6号楼1-2层</td>
      <td>0.308699</td>
      <td>中国工商银行(福州城东支行)</td>
      <td>119.335664,26.092649</td>
      <td>305.116</td>
      <td>0591-87326989</td>
      <td>金融保险服务;银行;中国工商银行</td>
    </tr>
    <tr>
      <th>25</th>
      <td>B024F04OJH</td>
      <td>东</td>
      <td>岳峰</td>
      <td>晋安区</td>
      <td>0.392054</td>
      <td>竹屿村</td>
      <td>119.339939,26.091106</td>
      <td>332.985</td>
      <td>[]</td>
      <td>地名地址信息;普通地名;村庄级地名</td>
    </tr>
    <tr>
      <th>26</th>
      <td>B0FFHLLQMG</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>[]</td>
      <td>0.115628</td>
      <td>东二环泰禾广场西区一期SOHO6号楼</td>
      <td>119.335468,26.092584</td>
      <td>306.374</td>
      <td>[]</td>
      <td>商务住宅;楼宇;商住两用楼宇</td>
    </tr>
    <tr>
      <th>27</th>
      <td>B0FFH4X6HI</td>
      <td>南</td>
      <td>岳峰</td>
      <td>连江北路喜盈门家居广场5号</td>
      <td>0.168303</td>
      <td>敏亮家居生活馆</td>
      <td>119.337437,26.087349</td>
      <td>312.628</td>
      <td>[]</td>
      <td>购物服务;家居建材市场;家具城</td>
    </tr>
    <tr>
      <th>28</th>
      <td>B0FFLCVA9L</td>
      <td>东</td>
      <td>岳峰</td>
      <td>[]</td>
      <td>0.170963</td>
      <td>SOHOB2</td>
      <td>119.339922,26.090487</td>
      <td>314.916</td>
      <td>[]</td>
      <td>商务住宅;楼宇;商务写字楼</td>
    </tr>
    <tr>
      <th>29</th>
      <td>B0FFHF0HDG</td>
      <td>西北</td>
      <td>岳峰</td>
      <td>岳峰镇连江北路与化工路交叉处东二环泰禾广场(一期)6号楼1层02商业、2层02商业服务用房</td>
      <td>0.413476</td>
      <td>中国建设银行(东二环支行)</td>
      <td>119.335429,26.092663</td>
      <td>316.003</td>
      <td>0591-83011786</td>
      <td>金融保险服务;银行;中国建设银行</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[9]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">店铺</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[9]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>0                  泰禾广场(东二环店)
1                 汉拿山(泰禾广场西区)
2                 越城记(泰禾广场西区)
3                 那一家(泰禾广场西区)
4              香港满记甜品(泰禾广场西区)
5                      泰禾广场西区
6                        水秀广场
7                    福建鑫天地家具城
8           英孚教育青少儿英语(泰禾广场东区)
9     太空向往主题公园(东二环泰禾广场东区Mall)
10                      岳峰高架桥
11             新爱婴国际早教(东泰禾中心)
12              喜盈门(福州)建材家具广场
13                福州捷诚房屋征收工程处
14              福州新南方家居建材旗舰中心
15         英孚教育青少儿英语(东二环泰禾中心)
16           宝岛眼镜(福州东二环泰禾广场店)
17               鲑鱼工坊(东二环泰禾店)
18               福州佳通第一塑料有限公司
19             泰禾城市广场东区儿童MALL
20                 林珍装饰材料有限公司
21                     泰禾广场东区
22            胡桃里音乐酒馆(东二环泰禾店)
23                      佰家汇地板
24             中国工商银行(福州城东支行)
25                        竹屿村
26         东二环泰禾广场西区一期SOHO6号楼
27                    敏亮家居生活馆
28                     SOHOB2
29              中国建设银行(东二环支行)
Name: name, dtype: object</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#36335;&#24452;&#35268;&#21010;&#65288;&#28857;&#21040;&#28857;&#30340;&#36807;&#31243;&#65289;">&#36335;&#24452;&#35268;&#21010;&#65288;&#28857;&#21040;&#28857;&#30340;&#36807;&#31243;&#65289;<a class="anchor-link" href="#&#36335;&#24452;&#35268;&#21010;&#65288;&#28857;&#21040;&#28857;&#30340;&#36807;&#31243;&#65289;">&#182;</a></h2><p><strong>或许用到了推荐算法</strong></p>
<h3 id="&#20135;&#21697;&#30340;&#35774;&#35745;&#24605;&#32500;">&#20135;&#21697;&#30340;&#35774;&#35745;&#24605;&#32500;<a class="anchor-link" href="#&#20135;&#21697;&#30340;&#35774;&#35745;&#24605;&#32500;">&#182;</a></h3><ol>
<li>请思考，什么样的产品需要路径规划？</li>
<li>如果你的产品需要，你会如何使用？</li>
<li><p>最优路线如何选择？高德会用到什么算法？（推荐系统）</p>
<ol>
<li>推荐系统输入location么？（起点、终点？还是全部点？）</li>
<li>实时的定位？（多长时间定位一次）更新1</li>
<li>定位完成其他点的变化？距离的选择（用户希望路边有更多的需求还是希望快速找到目的地？）</li>
<li>以上思考的越多，你的产品考虑的会越周全，避免产品后期的大量更改。</li>
</ol>
</li>
<li><p>可能了解的知识面，不需要清楚怎么做，但可以了解输入输出的结果是什么。参考如下图</p>
</li>
</ol>
<p><img src="http://imgtec.eetrend.com/files/2019-03/%E5%8D%9A%E5%AE%A2/100018447-63696-10.jpg" alt=""></p>
<hr>
<p><img src="https://pic2.zhimg.com/50/v2-45a26a9985308d90405dea78e6892dd0_r.jpg" alt=""></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;&#65288;API&#22522;&#26412;&#27969;&#31243;&#65289;&#65288;&#20195;&#30721;B&#65289;">&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;&#65288;API&#22522;&#26412;&#27969;&#31243;&#65289;&#65288;&#20195;&#30721;B&#65289;<a class="anchor-link" href="#&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;&#65288;API&#22522;&#26412;&#27969;&#31243;&#65289;&#65288;&#20195;&#30721;B&#65289;">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="B-1-&#20934;&#22791;base-url&#12289;params&#12289;response.json&#65288;&#65289;">B-1 &#20934;&#22791;base url&#12289;params&#12289;response.json&#65288;&#65289;<a class="anchor-link" href="#B-1-&#20934;&#22791;base-url&#12289;params&#12289;response.json&#65288;&#65289;">&#182;</a></h4>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[10]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># B-1 准备base url、params、response.json（） </span>
<span class="k">def</span> <span class="nf">walking</span><span class="p">(</span><span class="n">origin</span><span class="p">,</span><span class="n">destination</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/direction/walking?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key_zyi</span><span class="p">,</span>
        <span class="s1">&#39;origin&#39;</span><span class="p">:</span><span class="n">origin</span><span class="p">,</span>
        <span class="s1">&#39;destination&#39;</span><span class="p">:</span><span class="n">destination</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="B-2-&#20934;&#22791;walking-&#21442;&#25968;">B-2 &#20934;&#22791;walking &#21442;&#25968;<a class="anchor-link" href="#B-2-&#20934;&#22791;walking-&#21442;&#25968;">&#182;</a></h4><p>请同学们尝试从A-3细节中获取的某两个教学楼的location，尝试步行路径规划（起点）🙅-----&gt;（终点）🙅‍</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[11]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># B-2 准备walking 参数</span>
<span class="n">鼓山</span> <span class="o">=</span> <span class="n">geocode</span><span class="p">(</span><span class="s1">&#39;福建省福州市鼓山&#39;</span><span class="p">)</span>
<span class="c1"># print(三坊七巷)</span>
<span class="n">鼓山_location</span> <span class="o">=</span> <span class="n">鼓山</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;location&#39;</span><span class="p">]</span>
<span class="n">泰禾_location</span> <span class="o">=</span> <span class="n">泰禾</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;location&#39;</span><span class="p">]</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;(起点)泰禾_location:&quot;</span><span class="p">,</span><span class="n">泰禾_location</span><span class="p">,</span><span class="s2">&quot;(终点)鼓山_location:&quot;</span><span class="p">,</span><span class="n">鼓山_location</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>(起点)泰禾_location: 119.336798,26.090101 (终点)鼓山_location: 119.375105,26.053205
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="B-3-&#23454;&#29616;&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;">B-3 &#23454;&#29616;&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;<a class="anchor-link" href="#B-3-&#23454;&#29616;&#27493;&#34892;&#36335;&#24452;&#35268;&#21010;">&#182;</a></h4>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[12]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># B-3 路径规划</span>
<span class="n">泰禾_鼓山</span> <span class="o">=</span> <span class="n">walking</span><span class="p">(</span><span class="n">泰禾_location</span><span class="p">,</span><span class="n">鼓山_location</span><span class="p">)</span>
<span class="c1"># print(泰禾_三坊七巷)</span>
<span class="n">df_步行路径规划</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">泰禾_鼓山</span><span class="p">[</span><span class="s2">&quot;route&quot;</span><span class="p">][</span><span class="s2">&quot;paths&quot;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;steps&#39;</span><span class="p">])</span>
<span class="n">display</span><span class="p">(</span><span class="n">df_步行路径规划</span><span class="p">)</span>
<span class="n">df_步行路径规划</span><span class="p">[</span><span class="s2">&quot;instruction&quot;</span><span class="p">]</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>instruction</th>
      <th>orientation</th>
      <th>road</th>
      <th>distance</th>
      <th>duration</th>
      <th>polyline</th>
      <th>action</th>
      <th>assistant_action</th>
      <th>walk_type</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>步行13米右转</td>
      <td>[]</td>
      <td>[]</td>
      <td>13</td>
      <td>10</td>
      <td>119.336775,26.089566;119.336784,26.089449</td>
      <td>右转</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>1</th>
      <td>步行190米左转</td>
      <td>[]</td>
      <td>[]</td>
      <td>190</td>
      <td>152</td>
      <td>119.336784,26.089444;119.336337,26.089444;119....</td>
      <td>左转</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>2</th>
      <td>步行130米直行</td>
      <td>[]</td>
      <td>[]</td>
      <td>130</td>
      <td>104</td>
      <td>119.335308,26.090161;119.335026,26.089978;119....</td>
      <td>直行</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>3</th>
      <td>步行34米向左前方行走</td>
      <td>[]</td>
      <td>[]</td>
      <td>34</td>
      <td>27</td>
      <td>119.334492,26.089245;119.334392,26.088958</td>
      <td>向左前方行走</td>
      <td>[]</td>
      <td>1</td>
    </tr>
    <tr>
      <th>4</th>
      <td>沿连江北路向南步行15米左转</td>
      <td>南</td>
      <td>连江北路</td>
      <td>15</td>
      <td>12</td>
      <td>119.334388,26.088954;119.334423,26.088824</td>
      <td>左转</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>5</th>
      <td>步行43米右转</td>
      <td>[]</td>
      <td>[]</td>
      <td>43</td>
      <td>34</td>
      <td>119.334423,26.088819;119.334805,26.088637</td>
      <td>右转</td>
      <td>[]</td>
      <td>1</td>
    </tr>
    <tr>
      <th>6</th>
      <td>沿化工路步行61米直行</td>
      <td>[]</td>
      <td>化工路</td>
      <td>61</td>
      <td>49</td>
      <td>119.334805,26.088633;119.334709,26.088511;119....</td>
      <td>直行</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>7</th>
      <td>沿连江北路向南步行464米</td>
      <td>南</td>
      <td>连江北路</td>
      <td>464</td>
      <td>371</td>
      <td>119.33457,26.088116;119.334583,26.088008;119.3...</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>8</th>
      <td>沿连江北路向南步行286米向左前方行走</td>
      <td>南</td>
      <td>连江北路</td>
      <td>286</td>
      <td>229</td>
      <td>119.334705,26.083889;119.334753,26.083841;119....</td>
      <td>向左前方行走</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>9</th>
      <td>步行19米右转</td>
      <td>[]</td>
      <td>[]</td>
      <td>19</td>
      <td>15</td>
      <td>119.334891,26.081389;119.335026,26.081272</td>
      <td>右转</td>
      <td>[]</td>
      <td>1</td>
    </tr>
    <tr>
      <th>10</th>
      <td>沿福新东路步行50米向左前方行走</td>
      <td>[]</td>
      <td>福新东路</td>
      <td>50</td>
      <td>40</td>
      <td>119.335026,26.081267;119.334987,26.081215;119....</td>
      <td>向左前方行走</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>11</th>
      <td>沿连江北路向南步行409米向左前方行走</td>
      <td>南</td>
      <td>连江北路</td>
      <td>409</td>
      <td>327</td>
      <td>119.334935,26.08082;119.334944,26.08076;119.33...</td>
      <td>向左前方行走</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>12</th>
      <td>沿连江北路向南步行230米向左前方行走</td>
      <td>南</td>
      <td>连江北路</td>
      <td>230</td>
      <td>184</td>
      <td>119.335065,26.077083;119.335165,26.076888;119....</td>
      <td>向左前方行走</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>13</th>
      <td>沿连江北路向东南步行34米向左前方行走</td>
      <td>东南</td>
      <td>连江北路</td>
      <td>34</td>
      <td>27</td>
      <td>119.335317,26.075013;119.335386,26.074926;119....</td>
      <td>向左前方行走</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>14</th>
      <td>沿福马路向东步行333米向右前方行走</td>
      <td>东</td>
      <td>福马路</td>
      <td>333</td>
      <td>266</td>
      <td>119.33556,26.074792;119.335799,26.074701;119.3...</td>
      <td>向右前方行走</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>15</th>
      <td>沿福马路向东南步行25米向左前方行走</td>
      <td>东南</td>
      <td>福马路</td>
      <td>25</td>
      <td>20</td>
      <td>119.33885,26.074427;119.338928,26.074427;119.3...</td>
      <td>向左前方行走</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>16</th>
      <td>沿福马路向东步行124米向左前方行走</td>
      <td>东</td>
      <td>福马路</td>
      <td>124</td>
      <td>99</td>
      <td>119.339071,26.074319;119.339401,26.074332;119....</td>
      <td>向左前方行走</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>17</th>
      <td>向东步行82米向左前方行走</td>
      <td>东</td>
      <td>[]</td>
      <td>82</td>
      <td>66</td>
      <td>119.340312,26.074332;119.340438,26.074397;119....</td>
      <td>向左前方行走</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>18</th>
      <td>沿福马路向东步行1998米向左前方行走</td>
      <td>东</td>
      <td>福马路</td>
      <td>1998</td>
      <td>1598</td>
      <td>119.341085,26.07431;119.341237,26.07431;119.34...</td>
      <td>向左前方行走</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>19</th>
      <td>步行13米右转</td>
      <td>[]</td>
      <td>[]</td>
      <td>13</td>
      <td>10</td>
      <td>119.359909,26.068832;119.36003,26.068893</td>
      <td>右转</td>
      <td>[]</td>
      <td>1</td>
    </tr>
    <tr>
      <th>20</th>
      <td>沿福光路向东南步行92米向右前方行走</td>
      <td>东南</td>
      <td>福光路</td>
      <td>92</td>
      <td>74</td>
      <td>119.36003,26.068893;119.360174,26.068707;119.3...</td>
      <td>向右前方行走</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>21</th>
      <td>沿福马路向东南步行1346米向右前方行走</td>
      <td>东南</td>
      <td>福马路</td>
      <td>1346</td>
      <td>1077</td>
      <td>119.360664,26.068294;119.360859,26.06816;119.3...</td>
      <td>向右前方行走</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>22</th>
      <td>沿东三环路向西南步行10米左转</td>
      <td>西南</td>
      <td>东三环路</td>
      <td>10</td>
      <td>8</td>
      <td>119.371159,26.060564;119.371111,26.060486</td>
      <td>左转</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>23</th>
      <td>沿福马路向东南步行513米</td>
      <td>东南</td>
      <td>福马路</td>
      <td>513</td>
      <td>410</td>
      <td>119.371107,26.060482;119.371189,26.060391;119....</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>24</th>
      <td>沿福马路向南步行204米左转</td>
      <td>南</td>
      <td>福马路</td>
      <td>204</td>
      <td>163</td>
      <td>119.37355,26.056393;119.373563,26.056224;119.3...</td>
      <td>左转</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>25</th>
      <td>向东步行27米右转</td>
      <td>东</td>
      <td>[]</td>
      <td>27</td>
      <td>22</td>
      <td>119.374054,26.054609;119.374319,26.054653</td>
      <td>右转</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>26</th>
      <td>沿福马路向南步行165米左转</td>
      <td>南</td>
      <td>福马路</td>
      <td>165</td>
      <td>132</td>
      <td>119.374319,26.054653;119.37434,26.054523;119.3...</td>
      <td>左转</td>
      <td>[]</td>
      <td>0</td>
    </tr>
    <tr>
      <th>27</th>
      <td>向东步行49米到达目的地</td>
      <td>东</td>
      <td>[]</td>
      <td>49</td>
      <td>39</td>
      <td>119.374609,26.053173;119.375095,26.053238</td>
      <td>[]</td>
      <td>到达目的地</td>
      <td>0</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

<div class="output_area">

    <div class="prompt output_prompt">Out[12]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>0                  步行13米右转
1                 步行190米左转
2                 步行130米直行
3              步行34米向左前方行走
4           沿连江北路向南步行15米左转
5                  步行43米右转
6              沿化工路步行61米直行
7            沿连江北路向南步行464米
8      沿连江北路向南步行286米向左前方行走
9                  步行19米右转
10        沿福新东路步行50米向左前方行走
11     沿连江北路向南步行409米向左前方行走
12     沿连江北路向南步行230米向左前方行走
13     沿连江北路向东南步行34米向左前方行走
14      沿福马路向东步行333米向右前方行走
15      沿福马路向东南步行25米向左前方行走
16      沿福马路向东步行124米向左前方行走
17           向东步行82米向左前方行走
18     沿福马路向东步行1998米向左前方行走
19                 步行13米右转
20      沿福光路向东南步行92米向右前方行走
21    沿福马路向东南步行1346米向右前方行走
22         沿东三环路向西南步行10米左转
23           沿福马路向东南步行513米
24          沿福马路向南步行204米左转
25               向东步行27米右转
26          沿福马路向南步行165米左转
27            向东步行49米到达目的地
Name: instruction, dtype: object</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="&#23398;&#29983;&#32451;&#20064;&#65288;&#35831;&#25442;&#29992;&#20854;&#20182;&#22320;&#22336;&#28385;&#36275;&#20197;&#19979;&#35201;&#27714;&#65289;">&#23398;&#29983;&#32451;&#20064;&#65288;&#35831;&#25442;&#29992;&#20854;&#20182;&#22320;&#22336;&#28385;&#36275;&#20197;&#19979;&#35201;&#27714;&#65289;<a class="anchor-link" href="#&#23398;&#29983;&#32451;&#20064;&#65288;&#35831;&#25442;&#29992;&#20854;&#20182;&#22320;&#22336;&#28385;&#36275;&#20197;&#19979;&#35201;&#27714;&#65289;">&#182;</a></h4><ol>
<li>请更换地址，选择尽量含有walk_type参数，并查看高德是否返回正确</li>
<li>尝试不同的地址，检查返回的json</li>
</ol>
<p><img src="lianxi02.png" alt=""></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#20844;&#20132;&#36335;&#32447;&#35268;&#21010;&#65288;&#20195;&#30721;C&#65289;">&#20844;&#20132;&#36335;&#32447;&#35268;&#21010;&#65288;&#20195;&#30721;C&#65289;<a class="anchor-link" href="#&#20844;&#20132;&#36335;&#32447;&#35268;&#21010;&#65288;&#20195;&#30721;C&#65289;">&#182;</a></h3><ol>
<li>请同学们细读可使用的参数</li>
<li>尝试更改参数带到你想要的目标</li>
</ol>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[13]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># C-1</span>
<span class="k">def</span> <span class="nf">integrated</span><span class="p">(</span><span class="n">origin</span><span class="p">,</span><span class="n">destination</span><span class="p">,</span><span class="n">city</span><span class="p">,</span><span class="n">cityd</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;base&#39;</span><span class="p">,</span><span class="n">strategy</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">nightflag</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">date</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">time</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/direction/transit/integrated?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key_zyi</span><span class="p">,</span>
        <span class="s1">&#39;origin&#39;</span><span class="p">:</span><span class="n">origin</span><span class="p">,</span>
        <span class="s1">&#39;destination&#39;</span><span class="p">:</span><span class="n">destination</span><span class="p">,</span>
        <span class="s1">&#39;city&#39;</span><span class="p">:</span><span class="n">city</span><span class="p">,</span>
        <span class="s1">&#39;cityd&#39;</span><span class="p">:</span><span class="n">cityd</span><span class="p">,</span>
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;strategy&#39;</span><span class="p">:</span><span class="n">strategy</span><span class="p">,</span>
        <span class="s1">&#39;nightflag&#39;</span><span class="p">:</span><span class="n">nightflag</span><span class="p">,</span>
        <span class="s1">&#39;date&#39;</span><span class="p">:</span><span class="n">date</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>

<span class="c1"># C-2 准备walking 参数</span>
<span class="n">三坊七巷</span> <span class="o">=</span> <span class="n">geocode</span><span class="p">(</span><span class="s1">&#39;福建省福州市三坊七巷&#39;</span><span class="p">)</span>
<span class="n">三坊七巷_location</span> <span class="o">=</span> <span class="n">三坊七巷</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;location&#39;</span><span class="p">]</span>
<span class="n">宝龙</span> <span class="o">=</span> <span class="n">geocode</span><span class="p">(</span><span class="s1">&#39;福建省福州市宝龙城市广场&#39;</span><span class="p">)</span>
<span class="n">宝龙_location</span> <span class="o">=</span> <span class="n">宝龙</span><span class="p">[</span><span class="s1">&#39;geocodes&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;location&#39;</span><span class="p">]</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;(起点)三坊七巷_location:&quot;</span><span class="p">,</span><span class="n">三坊七巷_location</span><span class="p">,</span><span class="s2">&quot;(终点)宝龙_location:&quot;</span><span class="p">,</span><span class="n">宝龙_location</span><span class="p">)</span>

<span class="c1"># C-3 公交路径规划</span>
<span class="n">三坊七巷_宝龙</span> <span class="o">=</span> <span class="n">integrated</span><span class="p">(</span><span class="n">三坊七巷_location</span><span class="p">,</span><span class="n">宝龙_location</span><span class="p">,</span><span class="n">city</span><span class="o">=</span><span class="s1">&#39;福州&#39;</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">)</span>
<span class="n">df_bus</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">三坊七巷_宝龙</span><span class="p">)</span>
<span class="n">df_bus</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>(起点)三坊七巷_location: 119.296444,26.083775 (终点)宝龙_location: 119.291473,26.061611
</pre>
</div>
</div>

<div class="output_area">

    <div class="prompt output_prompt">Out[13]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>status</th>
      <th>info</th>
      <th>infocode</th>
      <th>count</th>
      <th>route.origin</th>
      <th>route.destination</th>
      <th>route.distance</th>
      <th>route.taxi_cost</th>
      <th>route.transits</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>1</td>
      <td>OK</td>
      <td>10000</td>
      <td>5</td>
      <td>119.296444,26.083775</td>
      <td>119.291473,26.061611</td>
      <td>2763</td>
      <td>10.0</td>
      <td>[{'cost': '2.0', 'duration': '1988', 'nightfla...</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[14]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">三坊七巷_宝龙</span><span class="p">[</span><span class="s2">&quot;route&quot;</span><span class="p">][</span><span class="s1">&#39;transits&#39;</span><span class="p">])</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[14]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>cost</th>
      <th>duration</th>
      <th>nightflag</th>
      <th>walking_distance</th>
      <th>distance</th>
      <th>missed</th>
      <th>segments</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>2.0</td>
      <td>1988</td>
      <td>0</td>
      <td>1840</td>
      <td>4100</td>
      <td>0</td>
      <td>[{'taxi': [], 'walking': {'origin': '119.29655...</td>
    </tr>
    <tr>
      <th>1</th>
      <td>2.0</td>
      <td>1975</td>
      <td>0</td>
      <td>1452</td>
      <td>4597</td>
      <td>0</td>
      <td>[{'taxi': [], 'walking': {'origin': '119.29655...</td>
    </tr>
    <tr>
      <th>2</th>
      <td>1.0</td>
      <td>2511</td>
      <td>0</td>
      <td>911</td>
      <td>4294</td>
      <td>0</td>
      <td>[{'taxi': [], 'walking': {'origin': '119.29652...</td>
    </tr>
    <tr>
      <th>3</th>
      <td>1.0</td>
      <td>2475</td>
      <td>0</td>
      <td>949</td>
      <td>4142</td>
      <td>0</td>
      <td>[{'taxi': [], 'walking': {'origin': '119.29655...</td>
    </tr>
    <tr>
      <th>4</th>
      <td>3.0</td>
      <td>2441</td>
      <td>0</td>
      <td>1291</td>
      <td>4298</td>
      <td>0</td>
      <td>[{'taxi': [], 'walking': {'origin': '119.29655...</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[15]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">三坊七巷_宝龙</span><span class="p">[</span><span class="s2">&quot;route&quot;</span><span class="p">][</span><span class="s1">&#39;transits&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;segments&#39;</span><span class="p">])</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[15]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>taxi</th>
      <th>walking.origin</th>
      <th>walking.destination</th>
      <th>walking.distance</th>
      <th>walking.duration</th>
      <th>walking.steps</th>
      <th>bus.buslines</th>
      <th>entrance.name</th>
      <th>entrance.location</th>
      <th>exit.name</th>
      <th>exit.location</th>
      <th>railway.via_stops</th>
      <th>railway.alters</th>
      <th>railway.spaces</th>
      <th>entrance</th>
      <th>exit</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>[]</td>
      <td>119.296555,26.083797</td>
      <td>119.302925,26.076246</td>
      <td>1314</td>
      <td>1126</td>
      <td>[{'instruction': '沿南后街步行街步行40米左转', 'road': '南后...</td>
      <td>[{'departure_stop': {'name': '南门兜', 'id': '350...</td>
      <td>A1西北口</td>
      <td>119.301178,26.078424</td>
      <td>C口</td>
      <td>119.293015,26.062105</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>NaN</td>
      <td>NaN</td>
    </tr>
    <tr>
      <th>1</th>
      <td>[]</td>
      <td>119.293343,26.062643</td>
      <td>119.291473,26.060925</td>
      <td>526</td>
      <td>450</td>
      <td>[{'instruction': '步行106米右转', 'road': [], 'dist...</td>
      <td>[]</td>
      <td>NaN</td>
      <td>NaN</td>
      <td>NaN</td>
      <td>NaN</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[16]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># print(三坊七巷_宝龙)</span>
<span class="n">df_bus_基本信息</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">三坊七巷_宝龙</span><span class="p">[</span><span class="s2">&quot;route&quot;</span><span class="p">][</span><span class="s1">&#39;transits&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;segments&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;bus&#39;</span><span class="p">][</span><span class="s2">&quot;buslines&quot;</span><span class="p">])</span>
<span class="n">df_bus_基本信息</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[16]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>name</th>
      <th>id</th>
      <th>type</th>
      <th>distance</th>
      <th>duration</th>
      <th>polyline</th>
      <th>bustimetag</th>
      <th>start_time</th>
      <th>end_time</th>
      <th>via_num</th>
      <th>via_stops</th>
      <th>departure_stop.name</th>
      <th>departure_stop.id</th>
      <th>departure_stop.location</th>
      <th>arrival_stop.name</th>
      <th>arrival_stop.id</th>
      <th>arrival_stop.location</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>地铁2号线(洋里--苏洋)</td>
      <td>350100020746</td>
      <td>地铁线路</td>
      <td>2260</td>
      <td>411</td>
      <td>119.302927,26.076249;119.301900,26.076246;119....</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>1</td>
      <td>[{'name': '西洋', 'id': '350100020746010', 'loca...</td>
      <td>南门兜</td>
      <td>350100020746009</td>
      <td>119.302927,26.076249</td>
      <td>宁化</td>
      <td>350100020746011</td>
      <td>119.293343,26.062650</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[17]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># C-4 公交车信息处理结果</span>
<span class="n">_27路公交车</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">三坊七巷_宝龙</span><span class="p">[</span><span class="s2">&quot;route&quot;</span><span class="p">][</span><span class="s1">&#39;transits&#39;</span><span class="p">][</span><span class="mi">3</span><span class="p">][</span><span class="s1">&#39;segments&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;bus&#39;</span><span class="p">][</span><span class="s2">&quot;buslines&quot;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s2">&quot;via_stops&quot;</span><span class="p">])</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="n">columns</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;name&quot;</span><span class="p">:</span><span class="s2">&quot;_27路公交车&quot;</span><span class="p">})</span>
<span class="n">_339路公交车</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">三坊七巷_宝龙</span><span class="p">[</span><span class="s2">&quot;route&quot;</span><span class="p">][</span><span class="s1">&#39;transits&#39;</span><span class="p">][</span><span class="mi">4</span><span class="p">][</span><span class="s1">&#39;segments&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;bus&#39;</span><span class="p">][</span><span class="s2">&quot;buslines&quot;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s2">&quot;via_stops&quot;</span><span class="p">])</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="n">columns</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;name&quot;</span><span class="p">:</span><span class="s2">&quot;_339路公交车&quot;</span><span class="p">})</span>
<span class="n">display</span><span class="p">(</span><span class="n">_27路公交车</span><span class="p">,</span><span class="n">_339路公交车</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>_27路公交车</th>
      <th>id</th>
      <th>location</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>光禄坊</td>
      <td>900000107419002</td>
      <td>119.295135,26.077332</td>
    </tr>
    <tr>
      <th>1</th>
      <td>乌山小学</td>
      <td>900000107419003</td>
      <td>119.291237,26.073561</td>
    </tr>
    <tr>
      <th>2</th>
      <td>小柳路南</td>
      <td>900000107419004</td>
      <td>119.289474,26.072245</td>
    </tr>
    <tr>
      <th>3</th>
      <td>乌山桥西</td>
      <td>900000107419005</td>
      <td>119.286728,26.072208</td>
    </tr>
    <tr>
      <th>4</th>
      <td>市教院附中</td>
      <td>900000107419006</td>
      <td>119.286438,26.069271</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
    </tr>
  </thead>
  <tbody>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#34892;&#25919;&#21306;&#22495;&#26597;&#35810;&#65288;&#20195;&#30721;D&#65289;">&#34892;&#25919;&#21306;&#22495;&#26597;&#35810;&#65288;&#20195;&#30721;D&#65289;<a class="anchor-link" href="#&#34892;&#25919;&#21306;&#22495;&#26597;&#35810;&#65288;&#20195;&#30721;D&#65289;">&#182;</a></h2><p><strong>我认为行政区域查询不具备ML、AI的功能的</strong></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[18]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># D-1 请注意行政区域级别划分参数</span>
<span class="k">def</span> <span class="nf">district</span><span class="p">(</span><span class="n">keywords</span><span class="p">,</span><span class="n">subdistrict</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">page</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">offset</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;base&#39;</span><span class="p">,</span><span class="nb">filter</span><span class="o">=</span><span class="kc">None</span><span class="p">,)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/config/district?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key_zyi</span><span class="p">,</span>
        <span class="s1">&#39;keywords&#39;</span><span class="p">:</span><span class="n">keywords</span><span class="p">,</span>
        <span class="s1">&#39;subdistrict&#39;</span><span class="p">:</span><span class="n">subdistrict</span><span class="p">,</span>
        <span class="s1">&#39;page&#39;</span><span class="p">:</span><span class="n">page</span><span class="p">,</span>
        <span class="s1">&#39;offset&#39;</span><span class="p">:</span><span class="n">offset</span><span class="p">,</span>
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;filter&#39;</span><span class="p">:</span><span class="nb">filter</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
<span class="n">行政区域</span> <span class="o">=</span> <span class="n">district</span><span class="p">(</span><span class="n">keywords</span><span class="o">=</span><span class="s1">&#39;广东&#39;</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">,</span><span class="n">subdistrict</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>

<span class="n">df_行政区域_1级</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">行政区域</span><span class="p">[</span><span class="s2">&quot;districts&quot;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;districts&#39;</span><span class="p">])</span>

<span class="n">df_行政区域_2级_广州市</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">行政区域</span><span class="p">[</span><span class="s2">&quot;districts&quot;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;districts&#39;</span><span class="p">][</span><span class="mi">20</span><span class="p">][</span><span class="s1">&#39;districts&#39;</span><span class="p">])</span>
<span class="n">df_行政区域_3级_广州市</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">行政区域</span><span class="p">[</span><span class="s2">&quot;districts&quot;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;districts&#39;</span><span class="p">][</span><span class="mi">20</span><span class="p">][</span><span class="s1">&#39;districts&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;districts&#39;</span><span class="p">])</span>

<span class="n">display</span><span class="p">(</span><span class="n">df_行政区域_1级</span><span class="p">,</span><span class="n">df_行政区域_2级_广州市</span><span class="p">,</span><span class="n">df_行政区域_3级_广州市</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>citycode</th>
      <th>adcode</th>
      <th>name</th>
      <th>center</th>
      <th>level</th>
      <th>districts</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>0758</td>
      <td>441200</td>
      <td>肇庆市</td>
      <td>112.472529,23.051546</td>
      <td>city</td>
      <td>[{'citycode': '0758', 'adcode': '441224', 'nam...</td>
    </tr>
    <tr>
      <th>1</th>
      <td>0757</td>
      <td>440600</td>
      <td>佛山市</td>
      <td>113.122717,23.028762</td>
      <td>city</td>
      <td>[{'citycode': '0757', 'adcode': '440607', 'nam...</td>
    </tr>
    <tr>
      <th>2</th>
      <td>0754</td>
      <td>440500</td>
      <td>汕头市</td>
      <td>116.708463,23.37102</td>
      <td>city</td>
      <td>[{'citycode': '0754', 'adcode': '440513', 'nam...</td>
    </tr>
    <tr>
      <th>3</th>
      <td>0752</td>
      <td>441300</td>
      <td>惠州市</td>
      <td>114.412599,23.079404</td>
      <td>city</td>
      <td>[{'citycode': '0752', 'adcode': '441324', 'nam...</td>
    </tr>
    <tr>
      <th>4</th>
      <td>0755</td>
      <td>440300</td>
      <td>深圳市</td>
      <td>114.085947,22.547</td>
      <td>city</td>
      <td>[{'citycode': '0755', 'adcode': '440306', 'nam...</td>
    </tr>
    <tr>
      <th>5</th>
      <td>0756</td>
      <td>440400</td>
      <td>珠海市</td>
      <td>113.553986,22.224979</td>
      <td>city</td>
      <td>[{'citycode': '0756', 'adcode': '440402', 'nam...</td>
    </tr>
    <tr>
      <th>6</th>
      <td>0759</td>
      <td>440800</td>
      <td>湛江市</td>
      <td>110.364977,21.274898</td>
      <td>city</td>
      <td>[{'citycode': '0759', 'adcode': '440883', 'nam...</td>
    </tr>
    <tr>
      <th>7</th>
      <td>0662</td>
      <td>441700</td>
      <td>阳江市</td>
      <td>111.975107,21.859222</td>
      <td>city</td>
      <td>[{'citycode': '0662', 'adcode': '441781', 'nam...</td>
    </tr>
    <tr>
      <th>8</th>
      <td>0660</td>
      <td>441500</td>
      <td>汕尾市</td>
      <td>115.364238,22.774485</td>
      <td>city</td>
      <td>[{'citycode': '0660', 'adcode': '441523', 'nam...</td>
    </tr>
    <tr>
      <th>9</th>
      <td>0768</td>
      <td>445100</td>
      <td>潮州市</td>
      <td>116.632301,23.661701</td>
      <td>city</td>
      <td>[{'citycode': '0768', 'adcode': '445122', 'nam...</td>
    </tr>
    <tr>
      <th>10</th>
      <td>0750</td>
      <td>440700</td>
      <td>江门市</td>
      <td>113.094942,22.590431</td>
      <td>city</td>
      <td>[{'citycode': '0750', 'adcode': '440784', 'nam...</td>
    </tr>
    <tr>
      <th>11</th>
      <td>0766</td>
      <td>445300</td>
      <td>云浮市</td>
      <td>112.044439,22.929801</td>
      <td>city</td>
      <td>[{'citycode': '0766', 'adcode': '445322', 'nam...</td>
    </tr>
    <tr>
      <th>12</th>
      <td>0767</td>
      <td>442100</td>
      <td>东沙群岛</td>
      <td>116.887312,20.617512</td>
      <td>city</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>13</th>
      <td>0668</td>
      <td>440900</td>
      <td>茂名市</td>
      <td>110.919229,21.659751</td>
      <td>city</td>
      <td>[{'citycode': '0668', 'adcode': '440983', 'nam...</td>
    </tr>
    <tr>
      <th>14</th>
      <td>0762</td>
      <td>441600</td>
      <td>河源市</td>
      <td>114.697802,23.746266</td>
      <td>city</td>
      <td>[{'citycode': '0762', 'adcode': '441622', 'nam...</td>
    </tr>
    <tr>
      <th>15</th>
      <td>0753</td>
      <td>441400</td>
      <td>梅州市</td>
      <td>116.117582,24.299112</td>
      <td>city</td>
      <td>[{'citycode': '0753', 'adcode': '441427', 'nam...</td>
    </tr>
    <tr>
      <th>16</th>
      <td>0769</td>
      <td>441900</td>
      <td>东莞市</td>
      <td>113.746262,23.046237</td>
      <td>city</td>
      <td>[{'citycode': '0769', 'adcode': '441900', 'nam...</td>
    </tr>
    <tr>
      <th>17</th>
      <td>0663</td>
      <td>445200</td>
      <td>揭阳市</td>
      <td>116.355733,23.543778</td>
      <td>city</td>
      <td>[{'citycode': '0663', 'adcode': '445222', 'nam...</td>
    </tr>
    <tr>
      <th>18</th>
      <td>0763</td>
      <td>441800</td>
      <td>清远市</td>
      <td>113.051227,23.685022</td>
      <td>city</td>
      <td>[{'citycode': '0763', 'adcode': '441882', 'nam...</td>
    </tr>
    <tr>
      <th>19</th>
      <td>0751</td>
      <td>440200</td>
      <td>韶关市</td>
      <td>113.591544,24.801322</td>
      <td>city</td>
      <td>[{'citycode': '0751', 'adcode': '440282', 'nam...</td>
    </tr>
    <tr>
      <th>20</th>
      <td>020</td>
      <td>440100</td>
      <td>广州市</td>
      <td>113.280637,23.125178</td>
      <td>city</td>
      <td>[{'citycode': '020', 'adcode': '440117', 'name...</td>
    </tr>
    <tr>
      <th>21</th>
      <td>0760</td>
      <td>442000</td>
      <td>中山市</td>
      <td>113.382391,22.521113</td>
      <td>city</td>
      <td>[{'citycode': '0760', 'adcode': '442000', 'nam...</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>citycode</th>
      <th>adcode</th>
      <th>name</th>
      <th>center</th>
      <th>level</th>
      <th>districts</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>020</td>
      <td>440117</td>
      <td>从化区</td>
      <td>113.587386,23.545283</td>
      <td>district</td>
      <td>[{'citycode': '020', 'adcode': '440117', 'name...</td>
    </tr>
    <tr>
      <th>1</th>
      <td>020</td>
      <td>440115</td>
      <td>南沙区</td>
      <td>113.53738,22.794531</td>
      <td>district</td>
      <td>[{'citycode': '020', 'adcode': '440115', 'name...</td>
    </tr>
    <tr>
      <th>2</th>
      <td>020</td>
      <td>440114</td>
      <td>花都区</td>
      <td>113.211184,23.39205</td>
      <td>district</td>
      <td>[{'citycode': '020', 'adcode': '440114', 'name...</td>
    </tr>
    <tr>
      <th>3</th>
      <td>020</td>
      <td>440113</td>
      <td>番禺区</td>
      <td>113.364619,22.938582</td>
      <td>district</td>
      <td>[{'citycode': '020', 'adcode': '440113', 'name...</td>
    </tr>
    <tr>
      <th>4</th>
      <td>020</td>
      <td>440103</td>
      <td>荔湾区</td>
      <td>113.243038,23.124943</td>
      <td>district</td>
      <td>[{'citycode': '020', 'adcode': '440103', 'name...</td>
    </tr>
    <tr>
      <th>5</th>
      <td>020</td>
      <td>440105</td>
      <td>海珠区</td>
      <td>113.262008,23.103131</td>
      <td>district</td>
      <td>[{'citycode': '020', 'adcode': '440105', 'name...</td>
    </tr>
    <tr>
      <th>6</th>
      <td>020</td>
      <td>440111</td>
      <td>白云区</td>
      <td>113.262831,23.162281</td>
      <td>district</td>
      <td>[{'citycode': '020', 'adcode': '440111', 'name...</td>
    </tr>
    <tr>
      <th>7</th>
      <td>020</td>
      <td>440118</td>
      <td>增城区</td>
      <td>113.829579,23.290497</td>
      <td>district</td>
      <td>[{'citycode': '020', 'adcode': '440118', 'name...</td>
    </tr>
    <tr>
      <th>8</th>
      <td>020</td>
      <td>440112</td>
      <td>黄埔区</td>
      <td>113.450761,23.103239</td>
      <td>district</td>
      <td>[{'citycode': '020', 'adcode': '440112', 'name...</td>
    </tr>
    <tr>
      <th>9</th>
      <td>020</td>
      <td>440106</td>
      <td>天河区</td>
      <td>113.335367,23.13559</td>
      <td>district</td>
      <td>[{'citycode': '020', 'adcode': '440106', 'name...</td>
    </tr>
    <tr>
      <th>10</th>
      <td>020</td>
      <td>440104</td>
      <td>越秀区</td>
      <td>113.280714,23.125624</td>
      <td>district</td>
      <td>[{'citycode': '020', 'adcode': '440104', 'name...</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>citycode</th>
      <th>adcode</th>
      <th>name</th>
      <th>center</th>
      <th>level</th>
      <th>districts</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>020</td>
      <td>440117</td>
      <td>江埔街道</td>
      <td>113.583,23.5107</td>
      <td>street</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>1</th>
      <td>020</td>
      <td>440117</td>
      <td>城郊街道</td>
      <td>113.519,23.6542</td>
      <td>street</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>2</th>
      <td>020</td>
      <td>440117</td>
      <td>街口街道</td>
      <td>113.581,23.5096</td>
      <td>street</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>3</th>
      <td>020</td>
      <td>440117</td>
      <td>吕田镇</td>
      <td>113.853,23.8471</td>
      <td>street</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>4</th>
      <td>020</td>
      <td>440117</td>
      <td>流溪河林场</td>
      <td>113.844,23.8201</td>
      <td>street</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>5</th>
      <td>020</td>
      <td>440117</td>
      <td>良口镇</td>
      <td>113.793,23.8184</td>
      <td>street</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>6</th>
      <td>020</td>
      <td>440117</td>
      <td>黄龙带水库管理处</td>
      <td>113.718,23.8369</td>
      <td>street</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>7</th>
      <td>020</td>
      <td>440117</td>
      <td>鳌头镇</td>
      <td>113.517,23.5497</td>
      <td>street</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>8</th>
      <td>020</td>
      <td>440117</td>
      <td>太平镇</td>
      <td>113.457,23.4819</td>
      <td>street</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>9</th>
      <td>020</td>
      <td>440117</td>
      <td>大岭山林场</td>
      <td>113.73,23.6254</td>
      <td>street</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>10</th>
      <td>020</td>
      <td>440117</td>
      <td>温泉镇</td>
      <td>113.828,23.6471</td>
      <td>street</td>
      <td>[]</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[19]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># D-2 2级区域地址</span>
<span class="c1"># df_行政区域_2级</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#25628;&#32034;POI">&#25628;&#32034;POI<a class="anchor-link" href="#&#25628;&#32034;POI">&#182;</a></h2><p><strong>或许用到了计算机实现智能的原理，计算机视觉</strong></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#20851;&#38190;&#23383;&#25628;&#32034;&#65288;&#20195;&#30721;E&#65289;">&#20851;&#38190;&#23383;&#25628;&#32034;&#65288;&#20195;&#30721;E&#65289;<a class="anchor-link" href="#&#20851;&#38190;&#23383;&#25628;&#32034;&#65288;&#20195;&#30721;E&#65289;">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[20]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># E-1</span>
<span class="k">def</span> <span class="nf">place_text</span><span class="p">(</span><span class="n">keywords</span><span class="p">,</span><span class="n">types</span><span class="p">,</span><span class="n">city</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">citylimit</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">children</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">page</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;base&#39;</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/place/text?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key_zyi</span><span class="p">,</span>
        <span class="s1">&#39;keywords&#39;</span><span class="p">:</span><span class="n">keywords</span><span class="p">,</span>
        <span class="s1">&#39;types&#39;</span><span class="p">:</span><span class="n">types</span><span class="p">,</span>
        <span class="s1">&#39;city&#39;</span><span class="p">:</span><span class="n">city</span><span class="p">,</span>
        <span class="s1">&#39;citylimit&#39;</span><span class="p">:</span><span class="n">citylimit</span><span class="p">,</span>
        <span class="s1">&#39;children&#39;</span><span class="p">:</span><span class="n">children</span><span class="p">,</span>
        <span class="s1">&#39;page&#39;</span><span class="p">:</span><span class="n">page</span><span class="p">,</span>
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>

<span class="n">广州_大学</span> <span class="o">=</span> <span class="n">place_text</span><span class="p">(</span><span class="s1">&#39;大学&#39;</span><span class="p">,</span><span class="s1">&#39;高等院校&#39;</span><span class="p">,</span><span class="n">city</span><span class="o">=</span><span class="s2">&quot;广州市&quot;</span><span class="p">,</span><span class="n">children</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">)</span>
<span class="n">广州_大学</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[20]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;count&#39;: &#39;302&#39;,
 &#39;info&#39;: &#39;OK&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;suggestion&#39;: {&#39;keywords&#39;: [], &#39;cities&#39;: []},
 &#39;pois&#39;: [{&#39;id&#39;: &#39;B00140458B&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;广东工业大学(龙洞校区)&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;迎龙路161号&#39;,
   &#39;location&#39;: &#39;113.359713,23.19677&#39;,
   &#39;tel&#39;: &#39;020-87082921&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440106&#39;,
   &#39;adname&#39;: &#39;天河区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413623812&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F010043_72087&#39;,
   &#39;entr_location&#39;: &#39;113.364790,23.195436&#39;,
   &#39;business_area&#39;: &#39;龙洞&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-03-15 20:21:25&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B00141HYUW &#39;,
     &#39;name&#39;: &#39; 广东工业大学龙洞校区(东南门) &#39;,
     &#39;sname&#39;: &#39; 东南门 &#39;,
     &#39;location&#39;: &#39;113.364707,23.195460&#39;,
     &#39;address&#39;: &#39; 龙洞街迎龙路161号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/141b7659bc7aeb993100980808f322a9&#39;},
    {&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/92efcbabaf296256cf568049791cbf8c&#39;},
    {&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/0279761ff16fc3dcd10e5912a51c026b&#39;}]},
  {&#39;id&#39;: &#39;B0FFFFQZDE&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;广州医科大学越秀校区&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;东风西路195号&#39;,
   &#39;location&#39;: &#39;113.256131,23.134038&#39;,
   &#39;tel&#39;: &#39;020-81340278;020-81340448&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440104&#39;,
   &#39;adname&#39;: &#39;越秀区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413525021&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F011043_603745&#39;,
   &#39;entr_location&#39;: &#39;113.255942,23.135396&#39;,
   &#39;business_area&#39;: &#39;东风&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-03-25 11:57:58&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/bd42c117adc1b03b2dc77821754276ed&#39;},
    {&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/87d1ed25ddca859aa8886312aa8d5837&#39;},
    {&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/d0b8c1500ff522ab27d0f92cfa022ef4&#39;}]},
  {&#39;id&#39;: &#39;B00141IHRZ&#39;,
   &#39;parent&#39;: &#39;B0FFIGLX5N&#39;,
   &#39;childtype&#39;: &#39;309&#39;,
   &#39;name&#39;: &#39;中山大学广州校区南校园&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;新港西路135号&#39;,
   &#39;location&#39;: &#39;113.298415,23.096714&#39;,
   &#39;tel&#39;: &#39;020-84112828;020-84036491&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440105&#39;,
   &#39;adname&#39;: &#39;海珠区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413521312&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F011043_948758;71653&#39;,
   &#39;entr_location&#39;: &#39;113.297039,23.091104&#39;,
   &#39;business_area&#39;: &#39;新港&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-22 11:33:30&#39;,
   &#39;alias&#39;: &#39;中山大学南校区|广州中大&#39;,
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: &#39;4.5&#39;, &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B00140TAV2 &#39;,
     &#39;name&#39;: &#39; 中山大学南校区(北门) &#39;,
     &#39;sname&#39;: &#39; 北门 &#39;,
     &#39;location&#39;: &#39;113.300039,23.102687&#39;,
     &#39;address&#39;: &#39; 新港西路135号中山大学南校区东北区398号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 990000 &#39;},
    {&#39;id&#39;: &#39; B00140TVAB &#39;,
     &#39;name&#39;: &#39; 中山大学广州校区南校园(南门) &#39;,
     &#39;sname&#39;: &#39; 南门 &#39;,
     &#39;location&#39;: &#39;113.29705,23.091124&#39;,
     &#39;address&#39;: &#39; 新港西路135号中山大学南校区 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B00140AQP4 &#39;,
     &#39;name&#39;: &#39; 中山大学广州校区南校园(西门) &#39;,
     &#39;sname&#39;: &#39; 西门 &#39;,
     &#39;location&#39;: &#39;113.2914,23.092947&#39;,
     &#39;address&#39;: &#39; 新港西路135号中山大学南校区 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B001402641 &#39;,
     &#39;name&#39;: &#39; 中山大学广州校区南校园(东校门) &#39;,
     &#39;sname&#39;: &#39; 东校门 &#39;,
     &#39;location&#39;: &#39;113.303862,23.094743&#39;,
     &#39;address&#39;: &#39; 新港西路135号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/f2ffc7743773caf2aab3929e9e02a997&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/4699806b0fc67194a8c6ee5cf3ed6266&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/a9dd44d4d4e70cf01aaf96da95c4f35b&#39;}]},
  {&#39;id&#39;: &#39;B00140W6FI&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;广东交通职业技术学院花都校区&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;工业大道东11号&#39;,
   &#39;location&#39;: &#39;113.203282,23.366957&#39;,
   &#39;tel&#39;: &#39;020-86863468&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440114&#39;,
   &#39;adname&#39;: &#39;花都区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3513014600&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F008042_198173;128817&#39;,
   &#39;entr_location&#39;: &#39;113.202664,23.367478&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-15 12:41:37&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B00140UFHS &#39;,
     &#39;name&#39;: &#39; 广东交通职业技术学院花都校区(西北门) &#39;,
     &#39;sname&#39;: &#39; 西北门 &#39;,
     &#39;location&#39;: &#39;113.202680,23.367438&#39;,
     &#39;address&#39;: &#39; 新华镇工业大道11号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991401 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/844717a66f6f45f3e8781c27fa387180&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/48e6c18adacdbb4f44cb0301fd4ea1b0&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/2c25a049ffb4a676f6bdf6babe9532bc&#39;}]},
  {&#39;id&#39;: &#39;B001409A53&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;广东培正学院&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;培正路53号&#39;,
   &#39;location&#39;: &#39;113.090459,23.410542&#39;,
   &#39;tel&#39;: &#39;020-86710904&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440114&#39;,
   &#39;adname&#39;: &#39;花都区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3513009700&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F008041_54&#39;,
   &#39;entr_location&#39;: &#39;113.092929,23.409245&#39;,
   &#39;business_area&#39;: &#39;赤坭村&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-03-24 15:52:06&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B0FFIIMMY2 &#39;,
     &#39;name&#39;: &#39; 广东培正学院(北门) &#39;,
     &#39;sname&#39;: &#39; 北门 &#39;,
     &#39;location&#39;: &#39;113.094676,23.414785&#39;,
     &#39;address&#39;: &#39; 培正路53号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B00141J9HV &#39;,
     &#39;name&#39;: &#39; 广东培正学院(东南门) &#39;,
     &#39;sname&#39;: &#39; 东南门 &#39;,
     &#39;location&#39;: &#39;113.092901,23.409255&#39;,
     &#39;address&#39;: &#39; 培正路53号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B0FFI5W8P2 &#39;,
     &#39;name&#39;: &#39; 广东培正学院停车场 &#39;,
     &#39;sname&#39;: &#39; 停车场 &#39;,
     &#39;location&#39;: &#39;113.091820,23.409761&#39;,
     &#39;address&#39;: &#39; 赤坭镇培正路53号广东培正学院 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;停车场&#39;,
     &#39;typecode&#39;: &#39; 150904 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/8d549f92c5aeb4926695f220094b142c&#39;},
    {&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/5576356f53037759b1cddc9dd2fcd60a&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/1fe4dfacc5459332c9878d0acd5cd381&#39;}]},
  {&#39;id&#39;: &#39;B00140BQCP&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;广州美术学院(大学城校区)&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;大学城外环西路168号&#39;,
   &#39;location&#39;: &#39;113.382675,23.038572&#39;,
   &#39;tel&#39;: [],
   &#39;postcode&#39;: [],
   &#39;website&#39;: &#39;www.gzarts.edu.cn&#39;,
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440113&#39;,
   &#39;adname&#39;: &#39;番禺区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413434011&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F012044_85969&#39;,
   &#39;entr_location&#39;: &#39;113.385018,23.037662&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-17 15:58:24&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: &#39;4.7&#39;, &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B00141J1UH &#39;,
     &#39;name&#39;: &#39; 广州美术学院大学城校区(南2门) &#39;,
     &#39;sname&#39;: &#39; 南2门 &#39;,
     &#39;location&#39;: &#39;113.382624,23.035882&#39;,
     &#39;address&#39;: &#39; 大学城外环西路168号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B001423P0V &#39;,
     &#39;name&#39;: &#39; 广州美术学院大学城校区停车场 &#39;,
     &#39;sname&#39;: &#39; 停车场 &#39;,
     &#39;location&#39;: &#39;113.383304,23.036106&#39;,
     &#39;address&#39;: &#39; 大学城外环西路北150米 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;停车场&#39;,
     &#39;typecode&#39;: &#39; 150904 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/c68c8d3ed1df8f9d7b5d36d80fa9c439&#39;},
    {&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/bfe8557b23557222319299609d428374&#39;},
    {&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/bcb2efea79f4979b4778cd1a0ed60cad&#39;}]},
  {&#39;id&#39;: &#39;B00140WEMJ&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;广东外语外贸大学(北校区)&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;白云大道北2号&#39;,
   &#39;location&#39;: &#39;113.29248,23.200471&#39;,
   &#39;tel&#39;: &#39;020-36204310;020-36209026;020-83308484&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440111&#39;,
   &#39;adname&#39;: &#39;白云区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413624301&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F010043_793967;73408&#39;,
   &#39;entr_location&#39;: &#39;113.287576,23.199968&#39;,
   &#39;business_area&#39;: &#39;白云大道&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-20 17:18:58&#39;,
   &#39;alias&#39;: &#39;外语外贸大学&#39;,
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B00140B6G3 &#39;,
     &#39;name&#39;: &#39; 广东外语外贸大学北校区(西门) &#39;,
     &#39;sname&#39;: &#39; 西门 &#39;,
     &#39;location&#39;: &#39;113.287583,23.199975&#39;,
     &#39;address&#39;: &#39; 白云大道北2号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;},
    {&#39;id&#39;: &#39; B00141KHZV &#39;,
     &#39;name&#39;: &#39; 广东外语外贸大学北校区停车场 &#39;,
     &#39;sname&#39;: &#39; 停车场 &#39;,
     &#39;location&#39;: &#39;113.289056,23.197722&#39;,
     &#39;address&#39;: &#39; 白云大道北2号广东外语外贸大学北校区内 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;停车场&#39;,
     &#39;typecode&#39;: &#39; 150904 &#39;},
    {&#39;id&#39;: &#39; B00141HX4Z &#39;,
     &#39;name&#39;: &#39; 广东外语外贸大学北校区停车场 &#39;,
     &#39;sname&#39;: &#39; 停车场 &#39;,
     &#39;location&#39;: &#39;113.293020,23.198988&#39;,
     &#39;address&#39;: &#39; 白云大道北2号广东外语外贸大学北校区内 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;停车场&#39;,
     &#39;typecode&#39;: &#39; 150904 &#39;},
    {&#39;id&#39;: &#39; B0FFG67WJR &#39;,
     &#39;name&#39;: &#39; 广东外语外贸大学北校区停车场 &#39;,
     &#39;sname&#39;: &#39; 停车场 &#39;,
     &#39;location&#39;: &#39;113.297436,23.197607&#39;,
     &#39;address&#39;: &#39; 白云大道北2号广东外语外贸大学北校区内 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;停车场&#39;,
     &#39;typecode&#39;: &#39; 150904 &#39;},
    {&#39;id&#39;: &#39; B0FFG69GAZ &#39;,
     &#39;name&#39;: &#39; 广东外语外贸大学北校区停车场 &#39;,
     &#39;sname&#39;: &#39; 停车场 &#39;,
     &#39;location&#39;: &#39;113.291531,23.205214&#39;,
     &#39;address&#39;: &#39; 白云大道北2号广东外语外贸大学北校区内 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;停车场&#39;,
     &#39;typecode&#39;: &#39; 150904 &#39;},
    {&#39;id&#39;: &#39; B0FFG68MX2 &#39;,
     &#39;name&#39;: &#39; 广东外语外贸大学北校区停车场 &#39;,
     &#39;sname&#39;: &#39; 停车场 &#39;,
     &#39;location&#39;: &#39;113.291149,23.200591&#39;,
     &#39;address&#39;: &#39; 白云大道北2号广东外语外贸大学北校区内 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;停车场&#39;,
     &#39;typecode&#39;: &#39; 150904 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/50be85cf4cd3a3cea167482f336a32a8&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/7db4b9407ff72f88fe36c248618bca8f&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/53dcfc72013d754ba1ef87bc49c8096f&#39;}]},
  {&#39;id&#39;: &#39;B00140UF1D&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;广东技术师范大学&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;中山大道西293号&#39;,
   &#39;location&#39;: &#39;113.371742,23.131147&#39;,
   &#39;tel&#39;: &#39;020-38257322;020-38256659&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: &#39;www.gdin.edu.cn&#39;,
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440106&#39;,
   &#39;adname&#39;: &#39;天河区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413525922&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F011043_699041&#39;,
   &#39;entr_location&#39;: &#39;113.371510,23.129655&#39;,
   &#39;business_area&#39;: &#39;上社村&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-08 16:27:47&#39;,
   &#39;alias&#39;: &#39;广东师范技术学院|广东技术师范学院&#39;,
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B00140TVFC &#39;,
     &#39;name&#39;: &#39; 广东技术师范大学(西南门) &#39;,
     &#39;sname&#39;: &#39; 西南门 &#39;,
     &#39;location&#39;: &#39;113.371504,23.129789&#39;,
     &#39;address&#39;: &#39; 中山大道西293号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991401 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/5840a03dded03463d363d684d1892526&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/7b6d43a8d7706f1ff22812921d64e08f&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/803a8ffcf7f6b1969c5757c8c4b252ef&#39;}]},
  {&#39;id&#39;: &#39;B00141OISJ&#39;,
   &#39;parent&#39;: &#39;B00140385E&#39;,
   &#39;childtype&#39;: &#39;309&#39;,
   &#39;name&#39;: &#39;广州中医药大学三元里校区&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;机场路12号&#39;,
   &#39;location&#39;: &#39;113.26713,23.156024&#39;,
   &#39;tel&#39;: &#39;020-86363563&#39;,
   &#39;postcode&#39;: &#39;510405&#39;,
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440111&#39;,
   &#39;adname&#39;: &#39;白云区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413528121&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F011043_604051&#39;,
   &#39;entr_location&#39;: &#39;113.263788,23.155384&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-13 18:40:53&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: &#39;4.0&#39;, &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/94ad9e0cd1db5ab6667f96a579af7d27&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/e5ef18f21bca2a71f0cf64c850418a6a&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/1662a71826f8fc86d4e630f85e25113c&#39;}]},
  {&#39;id&#39;: &#39;B0FFGH24MR&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;暨南大学&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: [],
   &#39;location&#39;: &#39;113.349402,23.133382&#39;,
   &#39;tel&#39;: [],
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440106&#39;,
   &#39;adname&#39;: &#39;天河区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413526702&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: [],
   &#39;entr_location&#39;: &#39;113.349745,23.135584&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-17 15:07:11&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: &#39;4.4&#39;, &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/60316bdae9210287f633765a48dc9f64&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/cc78db94234f74db4d2cea123e67c356&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/8d1f76d52a69f6a9e54a92c30cea9d5e&#39;}]},
  {&#39;id&#39;: &#39;B00140A367&#39;,
   &#39;parent&#39;: &#39;B0FFK7GDEE&#39;,
   &#39;childtype&#39;: &#39;309&#39;,
   &#39;name&#39;: &#39;广州大学桂花岗校区&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;桂花岗东1号&#39;,
   &#39;location&#39;: &#39;113.266066,23.149009&#39;,
   &#39;tel&#39;: &#39;020-36196087&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440104&#39;,
   &#39;adname&#39;: &#39;越秀区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413527120&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F011043_781965;721040;923924;721078;721080&#39;,
   &#39;entr_location&#39;: &#39;113.265865,23.149747&#39;,
   &#39;business_area&#39;: &#39;解放北&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-15 13:55:31&#39;,
   &#39;alias&#39;: &#39;桂花岗广州大学&#39;,
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B00140UG32 &#39;,
     &#39;name&#39;: &#39; 广州大学桂花岗校区(东北门) &#39;,
     &#39;sname&#39;: &#39; 东北门 &#39;,
     &#39;location&#39;: &#39;113.265856,23.149706&#39;,
     &#39;address&#39;: &#39; 桂花岗东1 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991401 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/4152aa7504576241c2a21d6ed03fc4b7&#39;},
    {&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/682e498d9e5e970e670841bec33e6cd8&#39;},
    {&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/bcd959a58fc339bd10bb3db2fd3ecf12&#39;}]},
  {&#39;id&#39;: &#39;B00140TVAS&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;昆明理工大学(广州校区)&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;中山大道中车陂北街28号&#39;,
   &#39;location&#39;: &#39;113.399378,23.128946&#39;,
   &#39;tel&#39;: &#39;020-82520210&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440106&#39;,
   &#39;adname&#39;: &#39;天河区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413535112&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F011044_267218&#39;,
   &#39;entr_location&#39;: &#39;113.397914,23.128374&#39;,
   &#39;business_area&#39;: &#39;车陂&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-03-18 18:14:11&#39;,
   &#39;alias&#39;: &#39;广州市广通工程技术职业培训学校&#39;,
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: &#39;3.0&#39;, &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/c927eb81f1fea92ff5d92012c1038448&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/dc78aba0a1784708b54ebea96d21a806&#39;}]},
  {&#39;id&#39;: &#39;B0FFIPCYV7&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;广州经济技术开发区行政学院&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;开发大道350号&#39;,
   &#39;location&#39;: &#39;113.525724,23.059868&#39;,
   &#39;tel&#39;: [],
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440112&#39;,
   &#39;adname&#39;: &#39;黄埔区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413447200&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F012045_11891&#39;,
   &#39;entr_location&#39;: &#39;113.52556,23.060098&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-03-30 12:03:43&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/775dea571f24dc27c6f5bf64d1bda579&#39;}]},
  {&#39;id&#39;: &#39;B0FFG8723C&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;广州工程技术职业学院(黄埔校区)&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;文冲街石化路石化大院166号&#39;,
   &#39;location&#39;: &#39;113.472697,23.10515&#39;,
   &#39;tel&#39;: [],
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440112&#39;,
   &#39;adname&#39;: &#39;黄埔区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413532712&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: [],
   &#39;entr_location&#39;: &#39;113.47267,23.104944&#39;,
   &#39;business_area&#39;: &#39;红山&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-03-26 16:43:13&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/96ce1bc6c800f048eb46dc27f391cd68&#39;}]},
  {&#39;id&#39;: &#39;B0FFG5CSH0&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;湘南学院实习教学基地&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;温泉东路117号附近&#39;,
   &#39;location&#39;: &#39;113.653704,23.653237&#39;,
   &#39;tel&#39;: [],
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440117&#39;,
   &#39;adname&#39;: &#39;从化区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3513358210&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: [],
   &#39;entr_location&#39;: [],
   &#39;business_area&#39;: &#39;温泉&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-03-18 18:26:04&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/82489cd4cc8686615e0c92efb29a54a8&#39;}]},
  {&#39;id&#39;: &#39;B0FFFV9MAC&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;广州民航职业技术学院(花都赤坭校区)&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;赤坭镇&#39;,
   &#39;location&#39;: &#39;113.104034,23.395655&#39;,
   &#39;tel&#39;: [],
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440114&#39;,
   &#39;adname&#39;: &#39;花都区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3513007810&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: [],
   &#39;entr_location&#39;: &#39;113.101521,23.396726&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-03-25 11:31:46&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/5d6d42dae7ef818ddc5fe3bade411789&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/92f466a0528336d95061a1001c6b11dc&#39;}]},
  {&#39;id&#39;: &#39;B0FFFAIKXG&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;广州商学院&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;九龙镇九龙大道&#39;,
   &#39;location&#39;: &#39;113.56882,23.303876&#39;,
   &#39;tel&#39;: &#39;020-82876130;020-82878480&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440112&#39;,
   &#39;adname&#39;: &#39;黄埔区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413746511&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F009045_1694&#39;,
   &#39;entr_location&#39;: &#39;113.567234,23.302894&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-14 16:01:12&#39;,
   &#39;alias&#39;: &#39;华南师范增城学院&#39;,
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/7f9aa9a61ce609fb64c5268dbeaecb2d&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/cc3c2c5e4bd30f7502fad8fa44a813d6&#39;},
    {&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/14769691648dfb561feb31d28266f3da&#39;}]},
  {&#39;id&#39;: &#39;B00141KFHP&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;南方医科大学&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;沙太南路1023-1063号&#39;,
   &#39;location&#39;: &#39;113.333184,23.187549&#39;,
   &#39;tel&#39;: &#39;020-61648502;020-61640114;020-61648504&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440111&#39;,
   &#39;adname&#39;: &#39;白云区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413622612&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F010043_795836;698321&#39;,
   &#39;entr_location&#39;: &#39;113.33681,23.18735&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-08 18:44:45&#39;,
   &#39;alias&#39;: &#39;中国人民解放军第一军医大学&#39;,
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/924e4108a6aea4f5888cd51937347202&#39;},
    {&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/dc134e52a67d49a5b879b907aac003d3&#39;},
    {&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/46d6703b7403158af6a9bd2a9029fc84&#39;}]},
  {&#39;id&#39;: &#39;B00141KFAQ&#39;,
   &#39;parent&#39;: &#39;B0FFK4HKF5&#39;,
   &#39;childtype&#39;: &#39;309&#39;,
   &#39;name&#39;: &#39;广州工程技术职业学院龙洞校区&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;龙洞街道天源路1121号&#39;,
   &#39;location&#39;: &#39;113.360274,23.19088&#39;,
   &#39;tel&#39;: &#39;020-87663584&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440106&#39;,
   &#39;adname&#39;: &#39;天河区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3413622822&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F010043_86069;796418&#39;,
   &#39;entr_location&#39;: &#39;113.359995,23.192728&#39;,
   &#39;business_area&#39;: &#39;龙洞&#39;,
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-03-26 13:59:22&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [{&#39;id&#39;: &#39; B00141PSD3 &#39;,
     &#39;name&#39;: &#39; 广州工程技术职业学院龙洞校区(东南门) &#39;,
     &#39;sname&#39;: &#39; 东南门 &#39;,
     &#39;location&#39;: &#39;113.361026,23.189129&#39;,
     &#39;address&#39;: &#39; 天源路1121号 &#39;,
     &#39;distance&#39;: &#39; 0 &#39;,
     &#39;subtype&#39;: &#39;门&#39;,
     &#39;typecode&#39;: &#39; 991400 &#39;}],
   &#39;photos&#39;: [{&#39;title&#39;: &#39;外景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/de5140322d3877562d3e32bb853f7cba&#39;},
    {&#39;title&#39;: &#39;内景图&#39;,
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/291fbc555ebbefc29b22b159982d3fd0&#39;}]},
  {&#39;id&#39;: &#39;B00141JRFZ&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;广东第二师范学院(花都校区)&#39;,
   &#39;tag&#39;: [],
   &#39;type&#39;: &#39;科教文化服务;学校;高等院校&#39;,
   &#39;typecode&#39;: &#39;141201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;迎宾大道西30号&#39;,
   &#39;location&#39;: &#39;113.185576,23.404948&#39;,
   &#39;tel&#39;: &#39;020-36967708&#39;,
   &#39;postcode&#39;: [],
   &#39;website&#39;: [],
   &#39;email&#39;: [],
   &#39;pcode&#39;: &#39;440000&#39;,
   &#39;pname&#39;: &#39;广东省&#39;,
   &#39;citycode&#39;: &#39;020&#39;,
   &#39;cityname&#39;: &#39;广州市&#39;,
   &#39;adcode&#39;: &#39;440114&#39;,
   &#39;adname&#39;: &#39;花都区&#39;,
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;gridcode&#39;: &#39;3513018412&#39;,
   &#39;distance&#39;: [],
   &#39;navi_poiid&#39;: &#39;F49F008042_144827&#39;,
   &#39;entr_location&#39;: &#39;113.184975,23.398431&#39;,
   &#39;business_area&#39;: [],
   &#39;exit_location&#39;: [],
   &#39;match&#39;: &#39;0&#39;,
   &#39;recommend&#39;: &#39;0&#39;,
   &#39;timestamp&#39;: &#39;2020-04-14 18:36:38&#39;,
   &#39;alias&#39;: [],
   &#39;indoor_map&#39;: &#39;0&#39;,
   &#39;indoor_data&#39;: {&#39;cpid&#39;: [], &#39;floor&#39;: [], &#39;truefloor&#39;: [], &#39;cmsid&#39;: []},
   &#39;groupbuy_num&#39;: &#39;0&#39;,
   &#39;discount_num&#39;: &#39;0&#39;,
   &#39;biz_ext&#39;: {&#39;rating&#39;: [], &#39;cost&#39;: []},
   &#39;event&#39;: [],
   &#39;children&#39;: [],
   &#39;photos&#39;: [{&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/e0ff165cbe5814f3ab16f59f5411e590&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/09e302b3cda26be92ee17794a5363da2&#39;},
    {&#39;title&#39;: [],
     &#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/2b0780d8ac5e1e90f46970e65db5e7bf&#39;}]}]}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[21]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">df_广州_大学</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">广州_大学</span><span class="p">[</span><span class="s2">&quot;pois&quot;</span><span class="p">])</span>
<span class="n">df_广州_大学_广东技术师范大学</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">广州_大学</span><span class="p">[</span><span class="s2">&quot;pois&quot;</span><span class="p">][</span><span class="mi">7</span><span class="p">][</span><span class="s2">&quot;children&quot;</span><span class="p">])</span>
<span class="n">display</span><span class="p">(</span><span class="n">df_广州_大学</span><span class="p">,</span><span class="n">df_广州_大学_广东技术师范大学</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>id</th>
      <th>parent</th>
      <th>childtype</th>
      <th>name</th>
      <th>tag</th>
      <th>type</th>
      <th>typecode</th>
      <th>biz_type</th>
      <th>address</th>
      <th>location</th>
      <th>...</th>
      <th>discount_num</th>
      <th>event</th>
      <th>children</th>
      <th>photos</th>
      <th>indoor_data.cpid</th>
      <th>indoor_data.floor</th>
      <th>indoor_data.truefloor</th>
      <th>indoor_data.cmsid</th>
      <th>biz_ext.rating</th>
      <th>biz_ext.cost</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>B00140458B</td>
      <td>[]</td>
      <td>[]</td>
      <td>广东工业大学(龙洞校区)</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>迎龙路161号</td>
      <td>113.359713,23.19677</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B00141HYUW ', 'name': ' 广东工业大学龙洞校区(东...</td>
      <td>[{'title': '内景图', 'url': 'http://store.is.auto...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>1</th>
      <td>B0FFFFQZDE</td>
      <td>[]</td>
      <td>[]</td>
      <td>广州医科大学越秀校区</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>东风西路195号</td>
      <td>113.256131,23.134038</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': '内景图', 'url': 'http://store.is.auto...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>2</th>
      <td>B00141IHRZ</td>
      <td>B0FFIGLX5N</td>
      <td>309</td>
      <td>中山大学广州校区南校园</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>新港西路135号</td>
      <td>113.298415,23.096714</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B00140TAV2 ', 'name': ' 中山大学南校区(北门) ...</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>4.5</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>3</th>
      <td>B00140W6FI</td>
      <td>[]</td>
      <td>[]</td>
      <td>广东交通职业技术学院花都校区</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>工业大道东11号</td>
      <td>113.203282,23.366957</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B00140UFHS ', 'name': ' 广东交通职业技术学院花都...</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>4</th>
      <td>B001409A53</td>
      <td>[]</td>
      <td>[]</td>
      <td>广东培正学院</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>培正路53号</td>
      <td>113.090459,23.410542</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B0FFIIMMY2 ', 'name': ' 广东培正学院(北门) '...</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>5</th>
      <td>B00140BQCP</td>
      <td>[]</td>
      <td>[]</td>
      <td>广州美术学院(大学城校区)</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>大学城外环西路168号</td>
      <td>113.382675,23.038572</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B00141J1UH ', 'name': ' 广州美术学院大学城校区(...</td>
      <td>[{'title': '内景图', 'url': 'http://store.is.auto...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>4.7</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>6</th>
      <td>B00140WEMJ</td>
      <td>[]</td>
      <td>[]</td>
      <td>广东外语外贸大学(北校区)</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>白云大道北2号</td>
      <td>113.29248,23.200471</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B00140B6G3 ', 'name': ' 广东外语外贸大学北校区(...</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>7</th>
      <td>B00140UF1D</td>
      <td>[]</td>
      <td>[]</td>
      <td>广东技术师范大学</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>中山大道西293号</td>
      <td>113.371742,23.131147</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B00140TVFC ', 'name': ' 广东技术师范大学(西南门...</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>8</th>
      <td>B00141OISJ</td>
      <td>B00140385E</td>
      <td>309</td>
      <td>广州中医药大学三元里校区</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>机场路12号</td>
      <td>113.26713,23.156024</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>4.0</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>9</th>
      <td>B0FFGH24MR</td>
      <td>[]</td>
      <td>[]</td>
      <td>暨南大学</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>[]</td>
      <td>113.349402,23.133382</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>4.4</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>10</th>
      <td>B00140A367</td>
      <td>B0FFK7GDEE</td>
      <td>309</td>
      <td>广州大学桂花岗校区</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>桂花岗东1号</td>
      <td>113.266066,23.149009</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B00140UG32 ', 'name': ' 广州大学桂花岗校区(东北...</td>
      <td>[{'title': '内景图', 'url': 'http://store.is.auto...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>11</th>
      <td>B00140TVAS</td>
      <td>[]</td>
      <td>[]</td>
      <td>昆明理工大学(广州校区)</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>中山大道中车陂北街28号</td>
      <td>113.399378,23.128946</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>3.0</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>12</th>
      <td>B0FFIPCYV7</td>
      <td>[]</td>
      <td>[]</td>
      <td>广州经济技术开发区行政学院</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>开发大道350号</td>
      <td>113.525724,23.059868</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>13</th>
      <td>B0FFG8723C</td>
      <td>[]</td>
      <td>[]</td>
      <td>广州工程技术职业学院(黄埔校区)</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>文冲街石化路石化大院166号</td>
      <td>113.472697,23.10515</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>14</th>
      <td>B0FFG5CSH0</td>
      <td>[]</td>
      <td>[]</td>
      <td>湘南学院实习教学基地</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>温泉东路117号附近</td>
      <td>113.653704,23.653237</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>15</th>
      <td>B0FFFV9MAC</td>
      <td>[]</td>
      <td>[]</td>
      <td>广州民航职业技术学院(花都赤坭校区)</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>赤坭镇</td>
      <td>113.104034,23.395655</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>16</th>
      <td>B0FFFAIKXG</td>
      <td>[]</td>
      <td>[]</td>
      <td>广州商学院</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>九龙镇九龙大道</td>
      <td>113.56882,23.303876</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': '外景图', 'url': 'http://store.is.auto...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>17</th>
      <td>B00141KFHP</td>
      <td>[]</td>
      <td>[]</td>
      <td>南方医科大学</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>沙太南路1023-1063号</td>
      <td>113.333184,23.187549</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': '外景图', 'url': 'http://store.is.auto...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>18</th>
      <td>B00141KFAQ</td>
      <td>B0FFK4HKF5</td>
      <td>309</td>
      <td>广州工程技术职业学院龙洞校区</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>龙洞街道天源路1121号</td>
      <td>113.360274,23.19088</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[{'id': ' B00141PSD3 ', 'name': ' 广州工程技术职业学院龙洞...</td>
      <td>[{'title': '外景图', 'url': 'http://store.is.auto...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>19</th>
      <td>B00141JRFZ</td>
      <td>[]</td>
      <td>[]</td>
      <td>广东第二师范学院(花都校区)</td>
      <td>[]</td>
      <td>科教文化服务;学校;高等院校</td>
      <td>141201</td>
      <td>[]</td>
      <td>迎宾大道西30号</td>
      <td>113.185576,23.404948</td>
      <td>...</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
      <td>[{'title': [], 'url': 'http://store.is.autonav...</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
  </tbody>
</table>
<p>20 rows × 46 columns</p>
</div>
</div>

</div>

<div class="output_area">

    <div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>id</th>
      <th>name</th>
      <th>sname</th>
      <th>location</th>
      <th>address</th>
      <th>distance</th>
      <th>subtype</th>
      <th>typecode</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>B00140TVFC</td>
      <td>广东技术师范大学(西南门)</td>
      <td>西南门</td>
      <td>113.371504,23.129789</td>
      <td>中山大道西293号</td>
      <td>0</td>
      <td>门</td>
      <td>991401</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#21608;&#36793;&#25628;&#32034;-(&#20195;&#30721;F)">&#21608;&#36793;&#25628;&#32034; (&#20195;&#30721;F)<a class="anchor-link" href="#&#21608;&#36793;&#25628;&#32034;-(&#20195;&#30721;F)">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[22]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># F-1 </span>
<span class="k">def</span> <span class="nf">place_around</span><span class="p">(</span><span class="n">location</span><span class="p">,</span><span class="n">keywords</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">types</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">city</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">redius</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">sortrule</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">offset</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">page</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;base&#39;</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/place/around?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key_zyi</span><span class="p">,</span>
        <span class="s1">&#39;keywords&#39;</span><span class="p">:</span><span class="n">keywords</span><span class="p">,</span>
        <span class="s1">&#39;location&#39;</span><span class="p">:</span><span class="n">location</span><span class="p">,</span>
        <span class="s1">&#39;types&#39;</span><span class="p">:</span><span class="n">types</span><span class="p">,</span>
        <span class="s1">&#39;city&#39;</span><span class="p">:</span><span class="n">city</span><span class="p">,</span>
        <span class="s1">&#39;redius&#39;</span><span class="p">:</span><span class="n">redius</span><span class="p">,</span>
        <span class="s1">&#39;sortrule&#39;</span><span class="p">:</span><span class="n">sortrule</span><span class="p">,</span>
        <span class="s1">&#39;offset&#39;</span><span class="p">:</span><span class="n">offset</span><span class="p">,</span>
        <span class="s1">&#39;page&#39;</span><span class="p">:</span><span class="n">page</span><span class="p">,</span>
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[23]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># F-2 json信息</span>
<span class="n">中山大学_周边POI</span> <span class="o">=</span> <span class="n">place_around</span><span class="p">(</span><span class="s1">&#39;116.473168,39.993015&#39;</span><span class="p">)</span>
<span class="n">中山大学_周边POI</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[23]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;count&#39;: &#39;843&#39;,
 &#39;info&#39;: &#39;OK&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;suggestion&#39;: {&#39;keywords&#39;: [], &#39;cities&#39;: []},
 &#39;pois&#39;: [{&#39;id&#39;: &#39;B0FFLIND01&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;鲜粮卷饼王&#39;,
   &#39;type&#39;: &#39;餐饮服务;餐饮相关场所;餐饮相关&#39;,
   &#39;typecode&#39;: &#39;050000&#39;,
   &#39;biz_type&#39;: &#39;diner&#39;,
   &#39;address&#39;: &#39;阜荣街10号悦食里美食城B14号&#39;,
   &#39;location&#39;: &#39;116.473344,39.992997&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;15&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;1&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFLH9QP5&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;1516串串香火锅(望京一店)&#39;,
   &#39;type&#39;: &#39;餐饮服务;中餐厅;火锅店&#39;,
   &#39;typecode&#39;: &#39;050117&#39;,
   &#39;biz_type&#39;: &#39;diner&#39;,
   &#39;address&#39;: &#39;阜荣街10号&#39;,
   &#39;location&#39;: &#39;116.473197,39.993211&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;21&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;1&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFKGPPFW&#39;,
   &#39;parent&#39;: &#39;B0FFFAB6J2&#39;,
   &#39;childtype&#39;: &#39;201&#39;,
   &#39;name&#39;: &#39;妈妈乐(首开广场)&#39;,
   &#39;type&#39;: &#39;生活服务;生活服务场所;生活服务场所&#39;,
   &#39;typecode&#39;: &#39;070000&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;阜荣街10号首开广场F6层&#39;,
   &#39;location&#39;: &#39;116.473267,39.992781&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;27&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFKGPPFX&#39;,
   &#39;parent&#39;: &#39;B0FFFAB6J2&#39;,
   &#39;childtype&#39;: &#39;201&#39;,
   &#39;name&#39;: &#39;宝贝计划(首开广场)&#39;,
   &#39;type&#39;: &#39;生活服务;生活服务场所;生活服务场所&#39;,
   &#39;typecode&#39;: &#39;070000&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;阜荣街10号首开广场F6层&#39;,
   &#39;location&#39;: &#39;116.473305,39.992758&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;30&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFKGPPFV&#39;,
   &#39;parent&#39;: &#39;B0FFFAB6J2&#39;,
   &#39;childtype&#39;: &#39;201&#39;,
   &#39;name&#39;: &#39;妈妈乐(首开广场)&#39;,
   &#39;type&#39;: &#39;生活服务;生活服务场所;生活服务场所&#39;,
   &#39;typecode&#39;: &#39;070000&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;阜荣街10号首开广场F7层&#39;,
   &#39;location&#39;: &#39;116.473223,39.992737&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;31&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFKGPPFY&#39;,
   &#39;parent&#39;: &#39;B0FFFAB6J2&#39;,
   &#39;childtype&#39;: &#39;201&#39;,
   &#39;name&#39;: &#39;宝贝计划(首开广场)&#39;,
   &#39;type&#39;: &#39;生活服务;生活服务场所;生活服务场所&#39;,
   &#39;typecode&#39;: &#39;070000&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;阜荣街10号首开广场F7层&#39;,
   &#39;location&#39;: &#39;116.473188,39.992705&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;34&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFFAB6J2&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;首开广场&#39;,
   &#39;type&#39;: &#39;商务住宅;楼宇;商务写字楼&#39;,
   &#39;typecode&#39;: &#39;120201&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;阜荣街10号&#39;,
   &#39;location&#39;: &#39;116.473004,39.993306&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;35&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFJSZCUX&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;环球创意广场&#39;,
   &#39;type&#39;: &#39;商务住宅;商务住宅相关;商务住宅相关&#39;,
   &#39;typecode&#39;: &#39;120000&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;阜荣街10号&#39;,
   &#39;location&#39;: &#39;116.473495,39.993236&#39;,
   &#39;tel&#39;: &#39;010-64733002&#39;,
   &#39;distance&#39;: &#39;37&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFLIN7XY&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;薯小帅&#39;,
   &#39;type&#39;: &#39;餐饮服务;餐饮相关场所;餐饮相关&#39;,
   &#39;typecode&#39;: &#39;050000&#39;,
   &#39;biz_type&#39;: &#39;diner&#39;,
   &#39;address&#39;: &#39;望京悦食里美食街区B1层B4-1&#39;,
   &#39;location&#39;: &#39;116.472952,39.993471&#39;,
   &#39;tel&#39;: &#39;15975103110&#39;,
   &#39;distance&#39;: &#39;54&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;1&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFKTCCC1&#39;,
   &#39;parent&#39;: &#39;B000A8386E&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;麦多馅饼&#39;,
   &#39;type&#39;: &#39;餐饮服务;快餐厅;快餐厅&#39;,
   &#39;typecode&#39;: &#39;050300&#39;,
   &#39;biz_type&#39;: &#39;diner&#39;,
   &#39;address&#39;: &#39;阜安西路东亚望京中心B座一层思美捷图文快印&#39;,
   &#39;location&#39;: &#39;116.472755,39.992431&#39;,
   &#39;tel&#39;: &#39;15210853340&#39;,
   &#39;distance&#39;: &#39;73&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFFOIRP0&#39;,
   &#39;parent&#39;: &#39;B000A8386E&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;速达电脑维修&#39;,
   &#39;type&#39;: &#39;生活服务;维修站点;维修站点&#39;,
   &#39;typecode&#39;: &#39;071200&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;广顺南大街33号东亚望京中心B座104号&#39;,
   &#39;location&#39;: &#39;116.472760,39.992362&#39;,
   &#39;tel&#39;: &#39;010-56224442;010-56226662&#39;,
   &#39;distance&#39;: &#39;80&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFKEMKYU&#39;,
   &#39;parent&#39;: &#39;B000A8386E&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;微软Surface笔记本电脑客户服务中心(望京中心店)&#39;,
   &#39;type&#39;: &#39;生活服务;生活服务场所;生活服务场所&#39;,
   &#39;typecode&#39;: &#39;070000&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;望京园402号东亚望京中心B座3层309室微软Surface笔记本电脑售后维修中心&#39;,
   &#39;location&#39;: &#39;116.472964,39.992306&#39;,
   &#39;tel&#39;: &#39;010-52462519&#39;,
   &#39;distance&#39;: &#39;80&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;1&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFIYEOPB&#39;,
   &#39;parent&#39;: &#39;B000A8386E&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;施华蔻美发连锁(望京店)&#39;,
   &#39;type&#39;: &#39;生活服务;美容美发店;美容美发店&#39;,
   &#39;typecode&#39;: &#39;071100&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;广顺南大街东亚望京中心B座22-06室&#39;,
   &#39;location&#39;: &#39;116.472838,39.992319&#39;,
   &#39;tel&#39;: &#39;18713705115;18810257184&#39;,
   &#39;distance&#39;: &#39;82&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFJMRLGR&#39;,
   &#39;parent&#39;: &#39;B000A8386E&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;翰皇专业洗衣洗鞋皮具保养店&#39;,
   &#39;type&#39;: &#39;生活服务;生活服务场所;生活服务场所&#39;,
   &#39;typecode&#39;: &#39;070000&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;广顺南大街东亚望京中心B座103&#39;,
   &#39;location&#39;: &#39;116.472680,39.992370&#39;,
   &#39;tel&#39;: &#39;010-84786857;15990998950&#39;,
   &#39;distance&#39;: &#39;82&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;1&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFG96XH9&#39;,
   &#39;parent&#39;: [],
   &#39;childtype&#39;: [],
   &#39;name&#39;: &#39;聚宝盆养生&#39;,
   &#39;type&#39;: &#39;生活服务;洗浴推拿场所;洗浴推拿场所&#39;,
   &#39;typecode&#39;: &#39;071400&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;望京园401东亚望京中心B202&#39;,
   &#39;location&#39;: &#39;116.472935,39.992283&#39;,
   &#39;tel&#39;: [],
   &#39;distance&#39;: &#39;83&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFL1TIR5&#39;,
   &#39;parent&#39;: &#39;B000A8386E&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;J灵韵无菌半永久眉眼唇定妆&#39;,
   &#39;type&#39;: &#39;生活服务;美容美发店;美容美发店&#39;,
   &#39;typecode&#39;: &#39;071100&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;阜安西路东亚望京中心b座2803&#39;,
   &#39;location&#39;: &#39;116.472974,39.992273&#39;,
   &#39;tel&#39;: &#39;13717684348&#39;,
   &#39;distance&#39;: &#39;84&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFJCXION&#39;,
   &#39;parent&#39;: &#39;B000A8386E&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;花想容生活馆&#39;,
   &#39;type&#39;: &#39;生活服务;生活服务场所;生活服务场所&#39;,
   &#39;typecode&#39;: &#39;070000&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;阜安西路东亚望京中心B座3015&#39;,
   &#39;location&#39;: &#39;116.472894,39.992287&#39;,
   &#39;tel&#39;: &#39;15101630359&#39;,
   &#39;distance&#39;: &#39;84&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFH0VVZ7&#39;,
   &#39;parent&#39;: &#39;B000A8386E&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;中国兰州牛肉拉面(望京店)&#39;,
   &#39;type&#39;: &#39;餐饮服务;中餐厅;中餐厅&#39;,
   &#39;typecode&#39;: &#39;050100&#39;,
   &#39;biz_type&#39;: &#39;diner&#39;,
   &#39;address&#39;: &#39;广顺南大街望京东亚中心B座1层底商106中国兰州拉面&#39;,
   &#39;location&#39;: &#39;116.472534,39.992413&#39;,
   &#39;tel&#39;: &#39;18510911614&#39;,
   &#39;distance&#39;: &#39;86&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;1&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFKWXI0F&#39;,
   &#39;parent&#39;: &#39;B000A8386E&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;外星人笔记本电脑服务中心(朝阳区店)&#39;,
   &#39;type&#39;: &#39;生活服务;生活服务场所;生活服务场所&#39;,
   &#39;typecode&#39;: &#39;070000&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;望京园402号东亚望京中心B座3层309H室&#39;,
   &#39;location&#39;: &#39;116.472927,39.992263&#39;,
   &#39;tel&#39;: &#39;010-82678232;010-82621980&#39;,
   &#39;distance&#39;: &#39;86&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []},
  {&#39;id&#39;: &#39;B0FFH9RFW2&#39;,
   &#39;parent&#39;: &#39;B000A8386E&#39;,
   &#39;childtype&#39;: &#39;202&#39;,
   &#39;name&#39;: &#39;三鑫人力&#39;,
   &#39;type&#39;: &#39;生活服务;人才市场;人才市场&#39;,
   &#39;typecode&#39;: &#39;070800&#39;,
   &#39;biz_type&#39;: [],
   &#39;address&#39;: &#39;东亚望京中心B座2712室&#39;,
   &#39;location&#39;: &#39;116.472789,39.992290&#39;,
   &#39;tel&#39;: &#39;010-53390935;13520727758&#39;,
   &#39;distance&#39;: &#39;86&#39;,
   &#39;biz_ext&#39;: [],
   &#39;importance&#39;: [],
   &#39;shopid&#39;: [],
   &#39;shopinfo&#39;: &#39;0&#39;,
   &#39;poiweight&#39;: [],
   &#39;photos&#39;: []}]}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[24]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># F-3 表格化，可扩展pandas处理</span>
<span class="n">df_中山大学_周边POI</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">json_normalize</span><span class="p">(</span><span class="n">中山大学_周边POI</span><span class="p">[</span><span class="s1">&#39;pois&#39;</span><span class="p">])</span>
<span class="n">df_中山大学_周边POI</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[24]:</div>



<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>id</th>
      <th>parent</th>
      <th>childtype</th>
      <th>name</th>
      <th>type</th>
      <th>typecode</th>
      <th>biz_type</th>
      <th>address</th>
      <th>location</th>
      <th>tel</th>
      <th>distance</th>
      <th>biz_ext</th>
      <th>importance</th>
      <th>shopid</th>
      <th>shopinfo</th>
      <th>poiweight</th>
      <th>photos</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>B0FFLIND01</td>
      <td>[]</td>
      <td>[]</td>
      <td>鲜粮卷饼王</td>
      <td>餐饮服务;餐饮相关场所;餐饮相关</td>
      <td>050000</td>
      <td>diner</td>
      <td>阜荣街10号悦食里美食城B14号</td>
      <td>116.473344,39.992997</td>
      <td>[]</td>
      <td>15</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>1</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>1</th>
      <td>B0FFLH9QP5</td>
      <td>[]</td>
      <td>[]</td>
      <td>1516串串香火锅(望京一店)</td>
      <td>餐饮服务;中餐厅;火锅店</td>
      <td>050117</td>
      <td>diner</td>
      <td>阜荣街10号</td>
      <td>116.473197,39.993211</td>
      <td>[]</td>
      <td>21</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>1</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>2</th>
      <td>B0FFKGPPFW</td>
      <td>B0FFFAB6J2</td>
      <td>201</td>
      <td>妈妈乐(首开广场)</td>
      <td>生活服务;生活服务场所;生活服务场所</td>
      <td>070000</td>
      <td>[]</td>
      <td>阜荣街10号首开广场F6层</td>
      <td>116.473267,39.992781</td>
      <td>[]</td>
      <td>27</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>3</th>
      <td>B0FFKGPPFX</td>
      <td>B0FFFAB6J2</td>
      <td>201</td>
      <td>宝贝计划(首开广场)</td>
      <td>生活服务;生活服务场所;生活服务场所</td>
      <td>070000</td>
      <td>[]</td>
      <td>阜荣街10号首开广场F6层</td>
      <td>116.473305,39.992758</td>
      <td>[]</td>
      <td>30</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>4</th>
      <td>B0FFKGPPFV</td>
      <td>B0FFFAB6J2</td>
      <td>201</td>
      <td>妈妈乐(首开广场)</td>
      <td>生活服务;生活服务场所;生活服务场所</td>
      <td>070000</td>
      <td>[]</td>
      <td>阜荣街10号首开广场F7层</td>
      <td>116.473223,39.992737</td>
      <td>[]</td>
      <td>31</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>5</th>
      <td>B0FFKGPPFY</td>
      <td>B0FFFAB6J2</td>
      <td>201</td>
      <td>宝贝计划(首开广场)</td>
      <td>生活服务;生活服务场所;生活服务场所</td>
      <td>070000</td>
      <td>[]</td>
      <td>阜荣街10号首开广场F7层</td>
      <td>116.473188,39.992705</td>
      <td>[]</td>
      <td>34</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>6</th>
      <td>B0FFFAB6J2</td>
      <td>[]</td>
      <td>[]</td>
      <td>首开广场</td>
      <td>商务住宅;楼宇;商务写字楼</td>
      <td>120201</td>
      <td>[]</td>
      <td>阜荣街10号</td>
      <td>116.473004,39.993306</td>
      <td>[]</td>
      <td>35</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>7</th>
      <td>B0FFJSZCUX</td>
      <td>[]</td>
      <td>[]</td>
      <td>环球创意广场</td>
      <td>商务住宅;商务住宅相关;商务住宅相关</td>
      <td>120000</td>
      <td>[]</td>
      <td>阜荣街10号</td>
      <td>116.473495,39.993236</td>
      <td>010-64733002</td>
      <td>37</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>8</th>
      <td>B0FFLIN7XY</td>
      <td>[]</td>
      <td>[]</td>
      <td>薯小帅</td>
      <td>餐饮服务;餐饮相关场所;餐饮相关</td>
      <td>050000</td>
      <td>diner</td>
      <td>望京悦食里美食街区B1层B4-1</td>
      <td>116.472952,39.993471</td>
      <td>15975103110</td>
      <td>54</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>1</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>9</th>
      <td>B0FFKTCCC1</td>
      <td>B000A8386E</td>
      <td>202</td>
      <td>麦多馅饼</td>
      <td>餐饮服务;快餐厅;快餐厅</td>
      <td>050300</td>
      <td>diner</td>
      <td>阜安西路东亚望京中心B座一层思美捷图文快印</td>
      <td>116.472755,39.992431</td>
      <td>15210853340</td>
      <td>73</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>10</th>
      <td>B0FFFOIRP0</td>
      <td>B000A8386E</td>
      <td>202</td>
      <td>速达电脑维修</td>
      <td>生活服务;维修站点;维修站点</td>
      <td>071200</td>
      <td>[]</td>
      <td>广顺南大街33号东亚望京中心B座104号</td>
      <td>116.472760,39.992362</td>
      <td>010-56224442;010-56226662</td>
      <td>80</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>11</th>
      <td>B0FFKEMKYU</td>
      <td>B000A8386E</td>
      <td>202</td>
      <td>微软Surface笔记本电脑客户服务中心(望京中心店)</td>
      <td>生活服务;生活服务场所;生活服务场所</td>
      <td>070000</td>
      <td>[]</td>
      <td>望京园402号东亚望京中心B座3层309室微软Surface笔记本电脑售后维修中心</td>
      <td>116.472964,39.992306</td>
      <td>010-52462519</td>
      <td>80</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>1</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>12</th>
      <td>B0FFIYEOPB</td>
      <td>B000A8386E</td>
      <td>202</td>
      <td>施华蔻美发连锁(望京店)</td>
      <td>生活服务;美容美发店;美容美发店</td>
      <td>071100</td>
      <td>[]</td>
      <td>广顺南大街东亚望京中心B座22-06室</td>
      <td>116.472838,39.992319</td>
      <td>18713705115;18810257184</td>
      <td>82</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>13</th>
      <td>B0FFJMRLGR</td>
      <td>B000A8386E</td>
      <td>202</td>
      <td>翰皇专业洗衣洗鞋皮具保养店</td>
      <td>生活服务;生活服务场所;生活服务场所</td>
      <td>070000</td>
      <td>[]</td>
      <td>广顺南大街东亚望京中心B座103</td>
      <td>116.472680,39.992370</td>
      <td>010-84786857;15990998950</td>
      <td>82</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>1</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>14</th>
      <td>B0FFG96XH9</td>
      <td>[]</td>
      <td>[]</td>
      <td>聚宝盆养生</td>
      <td>生活服务;洗浴推拿场所;洗浴推拿场所</td>
      <td>071400</td>
      <td>[]</td>
      <td>望京园401东亚望京中心B202</td>
      <td>116.472935,39.992283</td>
      <td>[]</td>
      <td>83</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>15</th>
      <td>B0FFL1TIR5</td>
      <td>B000A8386E</td>
      <td>202</td>
      <td>J灵韵无菌半永久眉眼唇定妆</td>
      <td>生活服务;美容美发店;美容美发店</td>
      <td>071100</td>
      <td>[]</td>
      <td>阜安西路东亚望京中心b座2803</td>
      <td>116.472974,39.992273</td>
      <td>13717684348</td>
      <td>84</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>16</th>
      <td>B0FFJCXION</td>
      <td>B000A8386E</td>
      <td>202</td>
      <td>花想容生活馆</td>
      <td>生活服务;生活服务场所;生活服务场所</td>
      <td>070000</td>
      <td>[]</td>
      <td>阜安西路东亚望京中心B座3015</td>
      <td>116.472894,39.992287</td>
      <td>15101630359</td>
      <td>84</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>17</th>
      <td>B0FFH0VVZ7</td>
      <td>B000A8386E</td>
      <td>202</td>
      <td>中国兰州牛肉拉面(望京店)</td>
      <td>餐饮服务;中餐厅;中餐厅</td>
      <td>050100</td>
      <td>diner</td>
      <td>广顺南大街望京东亚中心B座1层底商106中国兰州拉面</td>
      <td>116.472534,39.992413</td>
      <td>18510911614</td>
      <td>86</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>1</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>18</th>
      <td>B0FFKWXI0F</td>
      <td>B000A8386E</td>
      <td>202</td>
      <td>外星人笔记本电脑服务中心(朝阳区店)</td>
      <td>生活服务;生活服务场所;生活服务场所</td>
      <td>070000</td>
      <td>[]</td>
      <td>望京园402号东亚望京中心B座3层309H室</td>
      <td>116.472927,39.992263</td>
      <td>010-82678232;010-82621980</td>
      <td>86</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
    <tr>
      <th>19</th>
      <td>B0FFH9RFW2</td>
      <td>B000A8386E</td>
      <td>202</td>
      <td>三鑫人力</td>
      <td>生活服务;人才市场;人才市场</td>
      <td>070800</td>
      <td>[]</td>
      <td>东亚望京中心B座2712室</td>
      <td>116.472789,39.992290</td>
      <td>010-53390935;13520727758</td>
      <td>86</td>
      <td>[]</td>
      <td>[]</td>
      <td>[]</td>
      <td>0</td>
      <td>[]</td>
      <td>[]</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#22810;&#36793;&#24418;&#25628;&#32034;-&#65288;&#23398;&#29983;&#32451;&#20064;&#65289;">&#22810;&#36793;&#24418;&#25628;&#32034; &#65288;&#23398;&#29983;&#32451;&#20064;&#65289;<a class="anchor-link" href="#&#22810;&#36793;&#24418;&#25628;&#32034;-&#65288;&#23398;&#29983;&#32451;&#20064;&#65289;">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#38745;&#24577;&#22320;&#22270;">&#38745;&#24577;&#22320;&#22270;<a class="anchor-link" href="#&#38745;&#24577;&#22320;&#22270;">&#182;</a></h2><p><strong>计算机视觉、图像识别</strong></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[25]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># &gt;&gt;&gt; from PIL import Image</span>
<span class="c1"># &gt;&gt;&gt; from io import BytesIO</span>

<span class="c1"># &gt;&gt;&gt; i = Image.open(BytesIO(r.content))</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[26]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">PIL</span> <span class="k">import</span> <span class="n">Image</span>
<span class="kn">from</span> <span class="nn">io</span> <span class="k">import</span> <span class="n">BytesIO</span>
<span class="k">def</span> <span class="nf">staticmap</span><span class="p">(</span><span class="n">location</span><span class="p">,</span><span class="n">zoom</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">scale</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">markers</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">labels</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">paths</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">traffic</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">page</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">sig</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/staticmap?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key_zyi</span><span class="p">,</span>
        <span class="s1">&#39;location&#39;</span><span class="p">:</span><span class="n">location</span><span class="p">,</span>
        <span class="s1">&#39;zoom&#39;</span><span class="p">:</span><span class="n">zoom</span><span class="p">,</span>
        <span class="s1">&#39;size&#39;</span><span class="p">:</span><span class="n">size</span><span class="p">,</span>
        <span class="s1">&#39;scale&#39;</span><span class="p">:</span><span class="n">scale</span><span class="p">,</span>
        <span class="s1">&#39;markers&#39;</span><span class="p">:</span><span class="n">markers</span><span class="p">,</span>
        <span class="s1">&#39;labels&#39;</span><span class="p">:</span><span class="n">labels</span><span class="p">,</span>
        <span class="s1">&#39;paths&#39;</span><span class="p">:</span><span class="n">paths</span><span class="p">,</span>
        <span class="s1">&#39;traffic&#39;</span><span class="p">:</span><span class="n">traffic</span><span class="p">,</span>
        <span class="s1">&#39;sig&#39;</span><span class="p">:</span><span class="n">sig</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">BytesIO</span><span class="p">(</span><span class="n">response</span><span class="o">.</span><span class="n">content</span><span class="p">))</span>
    <span class="k">return</span> <span class="n">data</span>
</pre></div>

    </div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[27]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">staticmap</span><span class="p">(</span><span class="n">location</span><span class="o">=</span><span class="n">泰禾_location</span><span class="p">,</span><span class="n">zoom</span><span class="o">=</span><span class="mi">16</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[27]:</div>




<div class="output_png output_subarea output_execute_result">
<img src="
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="IP&#23450;&#20301;">IP&#23450;&#20301;<a class="anchor-link" href="#IP&#23450;&#20301;">&#182;</a></h2><p><em>推荐算法</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[28]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">IP_location</span><span class="p">(</span><span class="n">ip</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/ip?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key_zyi</span><span class="p">,</span>
        <span class="s1">&#39;ip&#39;</span><span class="p">:</span><span class="n">ip</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
<span class="n">IP_location</span><span class="p">(</span><span class="s1">&#39;114.247.50.2&#39;</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[28]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;info&#39;: &#39;OK&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;province&#39;: &#39;北京市&#39;,
 &#39;city&#39;: &#39;北京市&#39;,
 &#39;adcode&#39;: &#39;110000&#39;,
 &#39;rectangle&#39;: &#39;116.0119343,39.66127144;116.7829835,40.2164962&#39;}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#25209;&#37327;&#35831;&#27714;&#25509;&#21475;">&#25209;&#37327;&#35831;&#27714;&#25509;&#21475;<a class="anchor-link" href="#&#25209;&#37327;&#35831;&#27714;&#25509;&#21475;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[37]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">batch</span><span class="p">():</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/batch?key=317b2b98b27b266839553f10debb9b0f&#39;</span>
    <span class="n">headers</span> <span class="o">=</span> <span class="p">{</span>
        <span class="s1">&#39;Content-Type&#39;</span><span class="p">:</span> <span class="s1">&#39;application/json&#39;</span><span class="p">,</span>
    <span class="p">}</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
    <span class="s2">&quot;ops&quot;</span><span class="p">:</span> <span class="p">[</span>
        <span class="p">{</span>
            <span class="s2">&quot;url&quot;</span><span class="p">:</span> <span class="s2">&quot;/v3/place/around?offset=10&amp;page=1&amp;key=317b2b98b27b266839553f10debb9b0f&amp;location=116.50394379585519,39.278209477408794&amp;output=json&amp;radius=100000&amp;types=080000&quot;</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">&quot;url&quot;</span><span class="p">:</span> <span class="s2">&quot;/v3/place/around?offset=10&amp;page=1&amp;key=317b2b98b27b266839553f10debb9b0f&amp;location=118.50394379585519,39.278209477408794&amp;output=json&amp;radius=100000&amp;types=080000&quot;</span>
        <span class="p">}</span>
    <span class="p">]</span>
<span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">json</span><span class="o">=</span><span class="n">params</span><span class="p">,</span><span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
<span class="n">batch</span><span class="p">()</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[37]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>[{&#39;status&#39;: 200,
  &#39;body&#39;: {&#39;suggestion&#39;: {&#39;keywords&#39;: {}, &#39;cities&#39;: {}},
   &#39;info&#39;: &#39;OK&#39;,
   &#39;status&#39;: &#39;1&#39;,
   &#39;count&#39;: &#39;888&#39;,
   &#39;pois&#39;: [{&#39;typecode&#39;: &#39;080000&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFKKSDDS&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.511528,39.270463&#39;,
     &#39;distance&#39;: &#39;1082&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: {},
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;体育休闲服务场所;体育休闲服务场所&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;李庄子村兰阳草莓采摘园&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080501&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFJM772Z&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.513958,39.270648&#39;,
     &#39;distance&#39;: &#39;1205&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;永清镇北辛溜附近&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;休闲场所;游乐场&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;儿童乐园&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080503&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B013C16BMA&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.480285,39.291357&#39;,
     &#39;distance&#39;: &#39;2509&#39;,
     &#39;tel&#39;: &#39;13363650160&#39;,
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;永金一桥东500米&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/3e517731940c4684ee94acdfb8c39b26&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/8eb4c3eb92489cb32cafa17205dc0112&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/163f3273c7c60016197a2e7912df53df&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;休闲场所;采摘园&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;开心草莓采摘园&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080501&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFLPYFW5&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.496816,39.302615&#39;,
     &#39;distance&#39;: &#39;2785&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;益昌南路225东北100米&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;休闲场所;游乐场&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;DIY儿童乐园&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080603&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFLAIP6H&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.496230,39.303248&#39;,
     &#39;distance&#39;: &#39;2865&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;seat_ordering&#39;: &#39;0&#39;, &#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;益昌南路&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;影剧院;剧场&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;向阳禾理想城梦剧场&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080308&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B013C0IMLS&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.496593,39.304251&#39;,
     &#39;distance&#39;: &#39;2967&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: &#39;3.5&#39;, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;益昌南路179号&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/af47a5f4f741f6a3ad170e226f856b92&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;娱乐场所;网吧&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;梦想网吧(益昌南路店)&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080119&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFMDQ6D7&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.493187,39.304274&#39;,
     &#39;distance&#39;: &#39;3045&#39;,
     &#39;tel&#39;: &#39;13141201944&#39;,
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;武隆南路宏益街&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/0fb1662d06ad761b51070fe0ca4c26c5&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;运动场馆;跆拳道场馆&#39;,
     &#39;shopinfo&#39;: &#39;1&#39;,
     &#39;name&#39;: &#39;龙圣跆拳道馆&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080000&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFJQZNZW&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.497741,39.309459&#39;,
     &#39;distance&#39;: &#39;3519&#39;,
     &#39;tel&#39;: &#39;15210485655&#39;,
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;益昌南路268号新旺小区门口&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/67416ad37c69db61c270016fa6f430cc&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/d89fd2e7d4b62cba6187c87cc838bb89&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/dbaae4d6ace1004675ce4f252088ffe6&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;体育休闲服务场所;体育休闲服务场所&#39;,
     &#39;shopinfo&#39;: &#39;1&#39;,
     &#39;name&#39;: &#39;熙瑞国际游泳健身会所&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080113&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFM4EHTE&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.495838,39.309940&#39;,
     &#39;distance&#39;: &#39;3600&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: {},
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;运动场馆;台球厅&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;K9台球&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080308&#39;,
     &#39;adname&#39;: &#39;永清县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFJKVFLQ&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;116.497249,39.310649&#39;,
     &#39;distance&#39;: &#39;3656&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;益昌中路与益昌南路交叉口西南50米&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;廊坊市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;娱乐场所;网吧&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;网咖&#39;,
     &#39;childtype&#39;: {}}],
   &#39;infocode&#39;: &#39;10000&#39;},
  &#39;header&#39;: {&#39;gsid&#39;: &#39;011021045060158755463628500019715717479&#39;,
   &#39;Vary&#39;: &#39;Accept-Encoding&#39;,
   &#39;Content-Type&#39;: &#39;application/json;charset=UTF-8&#39;,
   &#39;Access-Control-Allow-Methods&#39;: &#39;*&#39;,
   &#39;Access-Control-Allow-Origin&#39;: &#39;*&#39;,
   &#39;sc&#39;: &#39;0.137&#39;,
   &#39;Content-Length&#39;: 5294,
   &#39;Access-Control-Allow-Headers&#39;: &#39;DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,key,x-biz,x-info,platinfo,encr,enginever,gzipped,poiid&#39;,
   &#39;X-Powered-By&#39;: &#39;ring/1.0.0&#39;}},
 {&#39;status&#39;: 200,
  &#39;body&#39;: {&#39;suggestion&#39;: {&#39;keywords&#39;: {}, &#39;cities&#39;: {}},
   &#39;info&#39;: &#39;OK&#39;,
   &#39;status&#39;: &#39;1&#39;,
   &#39;count&#39;: &#39;878&#39;,
   &#39;pois&#39;: [{&#39;typecode&#39;: &#39;080000&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFIT4V37&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.509300,39.261324&#39;,
     &#39;distance&#39;: &#39;1935&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;昌丰路与昌盛街交叉口东150米&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;体育休闲服务场所;体育休闲服务场所&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;利民老年公寓&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080500&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFM1WN4Q&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.473800,39.284305&#39;,
     &#39;distance&#39;: &#39;2684&#39;,
     &#39;tel&#39;: &#39;13102692203;15032998415&#39;,
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;永丰路与建设大街交叉口北行200米再东行200米&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/02f9a9353f15bb7c882c281addaca79a&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/462da2324343c04c255e5b6b55403952&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/dfc87db906b2994dae80342d4563b1e9&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;休闲场所;休闲场所&#39;,
     &#39;shopinfo&#39;: &#39;1&#39;,
     &#39;name&#39;: &#39;唐山兵途枪战运动&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080301&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFF2T193&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.471098,39.281979&#39;,
     &#39;distance&#39;: &#39;2861&#39;,
     &#39;tel&#39;: &#39;0315-8037777&#39;,
     &#39;biz_ext&#39;: {&#39;rating&#39;: &#39;4.3&#39;, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;建设大街与永丰路交叉口西南角&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/c8fd0a18befbe849ce8df7908d88ed24&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/468baaf5453e6c1b38d0c4c417183b40&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/a0a5fff0b63e60b3508c2ecb197d07e5&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;娱乐场所;夜总会&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;一代佳人夜总会&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080000&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFKPS8TZ&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.471344,39.273170&#39;,
     &#39;distance&#39;: &#39;2864&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;垦丰大街与永丰路交叉口南50米&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;体育休闲服务场所;体育休闲服务场所&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;新少年跆拳道馆&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080402&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B013B031EO&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.469256,39.278622&#39;,
     &#39;distance&#39;: &#39;2989&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;曙光街23号&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;度假疗养场所;疗养院&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;光荣院(曙光街)&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080500&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFHF91Y9&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.467429,39.273141&#39;,
     &#39;distance&#39;: &#39;3196&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;垦丰大街8号&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;休闲场所;休闲场所&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;曹妃甸区老干部活动中心&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080119&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFLDK6TP&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.466867,39.281969&#39;,
     &#39;distance&#39;: &#39;3222&#39;,
     &#39;tel&#39;: &#39;17736580504&#39;,
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;建设大街红赫世家东底商58号&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/b59e23956de23e47401416a6b4808c0c&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;运动场馆;跆拳道场馆&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;泽仁跆拳道&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080000&#39;,
     &#39;adname&#39;: &#39;滦南县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFH9MB8R&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.527757,39.301926&#39;,
     &#39;distance&#39;: &#39;3343&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;杨柏线北50米&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;体育休闲服务场所;体育休闲服务场所&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;陶乐宝儿童乐园&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080304&#39;,
     &#39;adname&#39;: &#39;曹妃甸区&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFLOR4DN&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.466494,39.287701&#39;,
     &#39;distance&#39;: &#39;3395&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: &#39;青年城二期东底商24号&#39;,
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: [{&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/29997dd7b0c66b1dc6f15a253918ccf2&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}},
      {&#39;url&#39;: &#39;http://store.is.autonavi.com/showpic/098df33a76f03e8d55672683f63da5d8&#39;,
       &#39;title&#39;: {},
       &#39;provider&#39;: {}}],
     &#39;type&#39;: &#39;体育休闲服务;娱乐场所;酒吧&#39;,
     &#39;shopinfo&#39;: &#39;1&#39;,
     &#39;name&#39;: &#39;ELK酒吧&#39;,
     &#39;childtype&#39;: {}},
    {&#39;typecode&#39;: &#39;080113&#39;,
     &#39;adname&#39;: &#39;滦南县&#39;,
     &#39;biz_type&#39;: {},
     &#39;id&#39;: &#39;B0FFMB6BAG&#39;,
     &#39;pname&#39;: &#39;河北省&#39;,
     &#39;importance&#39;: {},
     &#39;parent&#39;: {},
     &#39;location&#39;: &#39;118.528670,39.302678&#39;,
     &#39;distance&#39;: &#39;3457&#39;,
     &#39;tel&#39;: {},
     &#39;biz_ext&#39;: {&#39;rating&#39;: {}, &#39;cost&#39;: {}},
     &#39;shopid&#39;: {},
     &#39;address&#39;: {},
     &#39;poiweight&#39;: {},
     &#39;cityname&#39;: &#39;唐山市&#39;,
     &#39;photos&#39;: {},
     &#39;type&#39;: &#39;体育休闲服务;运动场馆;台球厅&#39;,
     &#39;shopinfo&#39;: &#39;0&#39;,
     &#39;name&#39;: &#39;下午时光台球俱乐部&#39;,
     &#39;childtype&#39;: {}}],
   &#39;infocode&#39;: &#39;10000&#39;},
  &#39;header&#39;: {&#39;gsid&#39;: &#39;011021045060158755463628500019715717479&#39;,
   &#39;Vary&#39;: &#39;Accept-Encoding&#39;,
   &#39;Content-Type&#39;: &#39;application/json;charset=UTF-8&#39;,
   &#39;Access-Control-Allow-Methods&#39;: &#39;*&#39;,
   &#39;Access-Control-Allow-Origin&#39;: &#39;*&#39;,
   &#39;sc&#39;: &#39;0.130&#39;,
   &#39;Content-Length&#39;: 5564,
   &#39;Access-Control-Allow-Headers&#39;: &#39;DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,key,x-biz,x-info,platinfo,encr,enginever,gzipped,poiid&#39;,
   &#39;X-Powered-By&#39;: &#39;ring/1.0.0&#39;}}]</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#22352;&#26631;&#36716;&#25442;">&#22352;&#26631;&#36716;&#25442;<a class="anchor-link" href="#&#22352;&#26631;&#36716;&#25442;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[30]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">Coordinate_tf</span><span class="p">(</span><span class="n">locations</span><span class="p">,</span><span class="n">coordsys</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/assistant/coordinate/convert?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key_zyi</span><span class="p">,</span>
        <span class="s1">&#39;locations&#39;</span><span class="p">:</span><span class="n">locations</span><span class="p">,</span>
        <span class="s1">&#39;coordsys&#39;</span><span class="p">:</span><span class="n">coordsys</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
<span class="n">Coordinate_tf</span><span class="p">(</span><span class="s1">&#39;113.949597,22.532795&#39;</span><span class="p">,)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[30]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;info&#39;: &#39;ok&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;locations&#39;: &#39;113.949597,22.532795&#39;}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#22825;&#27668;&#26597;&#35810;">&#22825;&#27668;&#26597;&#35810;<a class="anchor-link" href="#&#22825;&#27668;&#26597;&#35810;">&#182;</a></h2><p><strong>推荐算法</strong></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[31]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">weather</span><span class="p">(</span><span class="n">city</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;all&#39;</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/weather/weatherInfo?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key_zyi</span><span class="p">,</span>
        <span class="s1">&#39;city&#39;</span><span class="p">:</span><span class="n">city</span><span class="p">,</span>
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
<span class="n">weather</span><span class="p">(</span><span class="s1">&#39;110101&#39;</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[31]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;count&#39;: &#39;1&#39;,
 &#39;info&#39;: &#39;OK&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;forecasts&#39;: [{&#39;city&#39;: &#39;东城区&#39;,
   &#39;adcode&#39;: &#39;110101&#39;,
   &#39;province&#39;: &#39;北京&#39;,
   &#39;reporttime&#39;: &#39;2020-04-22 18:58:39&#39;,
   &#39;casts&#39;: [{&#39;date&#39;: &#39;2020-04-22&#39;,
     &#39;week&#39;: &#39;3&#39;,
     &#39;dayweather&#39;: &#39;晴&#39;,
     &#39;nightweather&#39;: &#39;晴&#39;,
     &#39;daytemp&#39;: &#39;15&#39;,
     &#39;nighttemp&#39;: &#39;6&#39;,
     &#39;daywind&#39;: &#39;北&#39;,
     &#39;nightwind&#39;: &#39;北&#39;,
     &#39;daypower&#39;: &#39;4&#39;,
     &#39;nightpower&#39;: &#39;4&#39;},
    {&#39;date&#39;: &#39;2020-04-23&#39;,
     &#39;week&#39;: &#39;4&#39;,
     &#39;dayweather&#39;: &#39;晴&#39;,
     &#39;nightweather&#39;: &#39;晴&#39;,
     &#39;daytemp&#39;: &#39;18&#39;,
     &#39;nighttemp&#39;: &#39;5&#39;,
     &#39;daywind&#39;: &#39;西北&#39;,
     &#39;nightwind&#39;: &#39;西北&#39;,
     &#39;daypower&#39;: &#39;4&#39;,
     &#39;nightpower&#39;: &#39;4&#39;},
    {&#39;date&#39;: &#39;2020-04-24&#39;,
     &#39;week&#39;: &#39;5&#39;,
     &#39;dayweather&#39;: &#39;晴&#39;,
     &#39;nightweather&#39;: &#39;晴&#39;,
     &#39;daytemp&#39;: &#39;27&#39;,
     &#39;nighttemp&#39;: &#39;12&#39;,
     &#39;daywind&#39;: &#39;西&#39;,
     &#39;nightwind&#39;: &#39;西&#39;,
     &#39;daypower&#39;: &#39;5&#39;,
     &#39;nightpower&#39;: &#39;5&#39;},
    {&#39;date&#39;: &#39;2020-04-25&#39;,
     &#39;week&#39;: &#39;6&#39;,
     &#39;dayweather&#39;: &#39;晴&#39;,
     &#39;nightweather&#39;: &#39;多云&#39;,
     &#39;daytemp&#39;: &#39;20&#39;,
     &#39;nighttemp&#39;: &#39;7&#39;,
     &#39;daywind&#39;: &#39;南&#39;,
     &#39;nightwind&#39;: &#39;南&#39;,
     &#39;daypower&#39;: &#39;4&#39;,
     &#39;nightpower&#39;: &#39;4&#39;}]}]}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#36755;&#20837;&#25552;&#31034;">&#36755;&#20837;&#25552;&#31034;<a class="anchor-link" href="#&#36755;&#20837;&#25552;&#31034;">&#182;</a></h2><p><em>推荐算法、自然语言处理、机器学习</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[32]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">input_remind</span><span class="p">(</span><span class="n">keywords</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/assistant/inputtips?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span> <span class="n">key_zyi</span><span class="p">,</span>
        <span class="s1">&#39;keywords&#39;</span><span class="p">:</span><span class="n">keywords</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
<span class="n">input_remind</span><span class="p">(</span><span class="s1">&#39;天安门&#39;</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[32]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;count&#39;: &#39;10&#39;,
 &#39;info&#39;: &#39;OK&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;tips&#39;: [{&#39;id&#39;: &#39;B000A60DA1&#39;,
   &#39;name&#39;: &#39;天安门&#39;,
   &#39;district&#39;: &#39;北京市东城区&#39;,
   &#39;adcode&#39;: &#39;110101&#39;,
   &#39;location&#39;: &#39;116.397451,39.909187&#39;,
   &#39;address&#39;: &#39;长安街北侧&#39;,
   &#39;typecode&#39;: &#39;110202&#39;,
   &#39;city&#39;: []},
  {&#39;id&#39;: &#39;B000A83C1S&#39;,
   &#39;name&#39;: &#39;天安门广场&#39;,
   &#39;district&#39;: &#39;北京市东城区&#39;,
   &#39;adcode&#39;: &#39;110101&#39;,
   &#39;location&#39;: &#39;116.397755,39.903179&#39;,
   &#39;address&#39;: &#39;东长安街&#39;,
   &#39;typecode&#39;: &#39;110105&#39;,
   &#39;city&#39;: []},
  {&#39;id&#39;: &#39;BV10005941&#39;,
   &#39;name&#39;: &#39;天安门西(地铁站)&#39;,
   &#39;district&#39;: &#39;北京市西城区&#39;,
   &#39;adcode&#39;: &#39;110102&#39;,
   &#39;location&#39;: &#39;116.391278,39.907472&#39;,
   &#39;address&#39;: &#39;1号线&#39;,
   &#39;typecode&#39;: &#39;150500&#39;,
   &#39;city&#39;: []},
  {&#39;id&#39;: &#39;B01D80P7F6&#39;,
   &#39;name&#39;: &#39;天安门业&#39;,
   &#39;district&#39;: &#39;内蒙古自治区包头市土默特右旗&#39;,
   &#39;adcode&#39;: &#39;150221&#39;,
   &#39;location&#39;: &#39;110.522188,40.578443&#39;,
   &#39;address&#39;: &#39;科技路附近&#39;,
   &#39;typecode&#39;: &#39;060603&#39;,
   &#39;city&#39;: []},
  {&#39;id&#39;: &#39;BV10006499&#39;,
   &#39;name&#39;: &#39;天安门东(地铁站)&#39;,
   &#39;district&#39;: &#39;北京市东城区&#39;,
   &#39;adcode&#39;: &#39;110101&#39;,
   &#39;location&#39;: &#39;116.401216,39.907780&#39;,
   &#39;address&#39;: &#39;1号线&#39;,
   &#39;typecode&#39;: &#39;150500&#39;,
   &#39;city&#39;: []},
  {&#39;id&#39;: &#39;BV10006498&#39;,
   &#39;name&#39;: &#39;天安门东(公交站)&#39;,
   &#39;district&#39;: &#39;北京市东城区&#39;,
   &#39;adcode&#39;: &#39;110101&#39;,
   &#39;location&#39;: &#39;116.401352,39.907650&#39;,
   &#39;address&#39;: &#39;120路;1路;2路;52路;82路;夜17路;夜1路;夜2路;旅游公交1线;旅游公交2线;观光1线;观光2线&#39;,
   &#39;typecode&#39;: &#39;150700&#39;,
   &#39;city&#39;: []},
  {&#39;id&#39;: &#39;B000AAACSP&#39;,
   &#39;name&#39;: &#39;天安门服务部&#39;,
   &#39;district&#39;: &#39;北京市东城区&#39;,
   &#39;adcode&#39;: &#39;110101&#39;,
   &#39;location&#39;: &#39;116.398011,39.909301&#39;,
   &#39;address&#39;: &#39;广场东侧路44号附近&#39;,
   &#39;typecode&#39;: &#39;070000&#39;,
   &#39;city&#39;: []},
  {&#39;id&#39;: &#39;B000A9PIVP&#39;,
   &#39;name&#39;: &#39;天安门华表&#39;,
   &#39;district&#39;: &#39;北京市东城区&#39;,
   &#39;adcode&#39;: &#39;110101&#39;,
   &#39;location&#39;: &#39;116.396911,39.908058&#39;,
   &#39;address&#39;: &#39;东长安街天安门内&#39;,
   &#39;typecode&#39;: &#39;110200&#39;,
   &#39;city&#39;: []},
  {&#39;id&#39;: &#39;B0FFG8YDKK&#39;,
   &#39;name&#39;: &#39;天安门-城楼&#39;,
   &#39;district&#39;: &#39;北京市东城区&#39;,
   &#39;adcode&#39;: &#39;110101&#39;,
   &#39;location&#39;: &#39;116.397573,39.908743&#39;,
   &#39;address&#39;: &#39;东长安街天安门&#39;,
   &#39;typecode&#39;: &#39;110202&#39;,
   &#39;city&#39;: []},
  {&#39;id&#39;: &#39;B0FFF64RWH&#39;,
   &#39;name&#39;: &#39;天安门城楼售票处&#39;,
   &#39;district&#39;: &#39;北京市东城区&#39;,
   &#39;adcode&#39;: &#39;110101&#39;,
   &#39;location&#39;: &#39;116.397309,39.909473&#39;,
   &#39;address&#39;: &#39;东长安街天安门城楼内&#39;,
   &#39;typecode&#39;: &#39;070306&#39;,
   &#39;city&#39;: []}]}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#20132;&#36890;&#24577;&#21183;">&#20132;&#36890;&#24577;&#21183;<a class="anchor-link" href="#&#20132;&#36890;&#24577;&#21183;">&#182;</a></h2><p><em>计算机视觉、专家系统</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[33]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">traffic</span><span class="p">(</span><span class="n">name</span><span class="p">,</span><span class="n">adcode</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span><span class="n">level</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span><span class="n">extensions</span><span class="o">=</span><span class="s1">&#39;base&#39;</span><span class="p">,</span><span class="n">city</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v3/traffic/status/road?parameters&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;key&#39;</span><span class="p">:</span><span class="n">key_zyi</span><span class="p">,</span>
        <span class="s1">&#39;level&#39;</span><span class="p">:</span><span class="n">level</span><span class="p">,</span>
        <span class="s1">&#39;extensions&#39;</span><span class="p">:</span><span class="n">extensions</span><span class="p">,</span>
        <span class="s1">&#39;output&#39;</span><span class="p">:</span><span class="s1">&#39;json&#39;</span><span class="p">,</span>
        <span class="s1">&#39;city&#39;</span><span class="p">:</span><span class="n">city</span><span class="p">,</span>
        <span class="s1">&#39;name&#39;</span><span class="p">:</span><span class="n">name</span><span class="p">,</span>
        <span class="s1">&#39;adcode&#39;</span><span class="p">:</span><span class="n">adcode</span><span class="p">,</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
<span class="n">traffic</span><span class="p">(</span><span class="s1">&#39;北环大道&#39;</span><span class="p">,</span><span class="s1">&#39;440300&#39;</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[33]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;status&#39;: &#39;1&#39;,
 &#39;info&#39;: &#39;OK&#39;,
 &#39;infocode&#39;: &#39;10000&#39;,
 &#39;trafficinfo&#39;: {&#39;description&#39;: &#39;北环大道：双向缓慢，从北环新洲立交到北环彩田立交严重拥堵，北环上步立交附近自东向西严重拥堵。&#39;,
  &#39;evaluation&#39;: {&#39;expedite&#39;: &#39;32.46%&#39;,
   &#39;congested&#39;: &#39;50.87%&#39;,
   &#39;blocked&#39;: &#39;8.54%&#39;,
   &#39;unknown&#39;: &#39;8.13%&#39;,
   &#39;status&#39;: &#39;3&#39;,
   &#39;description&#39;: &#39;行驶缓慢&#39;}}}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#22320;&#29702;&#22260;&#26639;">&#22320;&#29702;&#22260;&#26639;<a class="anchor-link" href="#&#22320;&#29702;&#22260;&#26639;">&#182;</a></h2><p><strong>计算机实现智能的原理、专家系统、机器学习、图像识别</strong></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[34]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">creat_wl</span><span class="p">(</span><span class="n">name</span><span class="p">,</span><span class="n">center</span><span class="p">,</span><span class="n">radius</span><span class="p">,</span><span class="n">repeat</span><span class="o">=</span><span class="s1">&#39;Mon&#39;</span><span class="p">,)</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v4/geofence/meta?key=317b2b98b27b266839553f10debb9b0f&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">{</span>
        <span class="s1">&#39;name&#39;</span><span class="p">:</span><span class="n">name</span><span class="p">,</span>
        <span class="s1">&#39;center&#39;</span><span class="p">:</span><span class="n">center</span><span class="p">,</span>
        <span class="s1">&#39;radius&#39;</span><span class="p">:</span><span class="n">radius</span><span class="p">,</span>
        <span class="s1">&#39;repeat&#39;</span><span class="p">:</span><span class="n">repeat</span><span class="p">,</span>
    <span class="p">}</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">json</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
<span class="n">creat_wl</span><span class="p">(</span><span class="s1">&#39;测试围栏&#39;</span><span class="p">,</span><span class="s1">&#39;115.672126,38.817129&#39;</span><span class="p">,</span><span class="mi">100</span><span class="p">)</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[34]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;data&#39;: {&#39;message&#39;: &#39;新增围栏已存在&#39;, &#39;status&#39;: &#39;106&#39;},
 &#39;errcode&#39;: 0,
 &#39;errdetail&#39;: None,
 &#39;errmsg&#39;: &#39;OK&#39;,
 &#39;ext&#39;: None}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#36712;&#36857;&#32416;&#20559;">&#36712;&#36857;&#32416;&#20559;<a class="anchor-link" href="#&#36712;&#36857;&#32416;&#20559;">&#182;</a></h2><p><strong>推荐算法、计算机视觉</strong></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[35]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">correct_error</span><span class="p">()</span><span class="o">-&gt;</span><span class="nb">dict</span><span class="p">:</span>
    <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;https://restapi.amap.com/v4/grasproad/driving?key=317b2b98b27b266839553f10debb9b0f&#39;</span>
    <span class="n">params</span><span class="o">=</span><span class="p">[{</span>
<span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="mf">116.449428</span><span class="p">,</span>
<span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="mf">40.014744</span><span class="p">,</span>
<span class="s2">&quot;sp&quot;</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span>
<span class="s2">&quot;ag&quot;</span><span class="p">:</span> <span class="mi">110</span><span class="p">,</span>
<span class="s2">&quot;tm&quot;</span><span class="p">:</span> <span class="mi">1478831754</span>
<span class="p">},</span> <span class="p">{</span>
<span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="mf">116.449639</span><span class="p">,</span>
<span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="mf">40.014778</span><span class="p">,</span>
<span class="s2">&quot;sp&quot;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span>
<span class="s2">&quot;ag&quot;</span><span class="p">:</span> <span class="mi">110</span><span class="p">,</span>
<span class="s2">&quot;tm&quot;</span><span class="p">:</span> <span class="mi">20</span>
<span class="p">},</span> <span class="p">{</span>
<span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="mf">116.449869</span><span class="p">,</span>
<span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="mf">40.014716</span><span class="p">,</span>
<span class="s2">&quot;sp&quot;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span>
<span class="s2">&quot;ag&quot;</span><span class="p">:</span> <span class="mi">109</span><span class="p">,</span>
<span class="s2">&quot;tm&quot;</span><span class="p">:</span> <span class="mi">35</span>
<span class="p">},</span> <span class="p">{</span>
<span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="mf">116.450074</span><span class="p">,</span>
<span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="mf">40.014658</span><span class="p">,</span>
<span class="s2">&quot;sp&quot;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span>
<span class="s2">&quot;ag&quot;</span><span class="p">:</span> <span class="mi">110</span><span class="p">,</span>
<span class="s2">&quot;tm&quot;</span><span class="p">:</span> <span class="mi">36</span>
<span class="p">},</span> <span class="p">{</span>
<span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="mf">116.450273</span><span class="p">,</span>
<span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="mf">40.014598</span><span class="p">,</span>
<span class="s2">&quot;sp&quot;</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
<span class="s2">&quot;ag&quot;</span><span class="p">:</span> <span class="mi">111</span><span class="p">,</span>
<span class="s2">&quot;tm&quot;</span><span class="p">:</span> <span class="mi">26</span>
<span class="p">},</span> <span class="p">{</span>
<span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="mf">116.450263</span><span class="p">,</span>
<span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="mf">40.014588</span><span class="p">,</span>
<span class="s2">&quot;sp&quot;</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
<span class="s2">&quot;ag&quot;</span><span class="p">:</span> <span class="mi">109</span><span class="p">,</span>
<span class="s2">&quot;tm&quot;</span><span class="p">:</span> <span class="mi">18</span>
<span class="p">}]</span>
    <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">url</span><span class="p">,</span><span class="n">json</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
    <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
    <span class="k">return</span> <span class="n">data</span>
<span class="n">correct_error</span><span class="p">()</span>
</pre></div>

    </div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

    <div class="prompt output_prompt">Out[35]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>{&#39;data&#39;: {&#39;distance&#39;: 23.0,
  &#39;points&#39;: [{&#39;x&#39;: 116.44943208825043, &#39;y&#39;: 40.01474429256184},
   {&#39;x&#39;: 116.449458182449, &#39;y&#39;: 40.0145304056883}]},
 &#39;errcode&#39;: 0,
 &#39;errdetail&#39;: None,
 &#39;errmsg&#39;: &#39;OK&#39;,
 &#39;ext&#39;: None}</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#23581;&#35797;&#35774;&#35745;&#19968;&#20010;&#31616;&#21333;&#30340;&#24212;&#29992;&#65292;&#33267;&#23569;&#28041;&#21450;3&#20010;API">&#23581;&#35797;&#35774;&#35745;&#19968;&#20010;&#31616;&#21333;&#30340;&#24212;&#29992;&#65292;&#33267;&#23569;&#28041;&#21450;3&#20010;API<a class="anchor-link" href="#&#23581;&#35797;&#35774;&#35745;&#19968;&#20010;&#31616;&#21333;&#30340;&#24212;&#29992;&#65292;&#33267;&#23569;&#28041;&#21450;3&#20010;API">&#182;</a></h1>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><em>进入某一个地区时，自动查询当地天气及路况</em></p>
<p><em>（天气查询，交通态势，地理围栏）</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#24635;&#32467;&#21450;&#23637;&#26395;">&#24635;&#32467;&#21450;&#23637;&#26395;<a class="anchor-link" href="#&#24635;&#32467;&#21450;&#23637;&#26395;">&#182;</a></h1><h2 id="&#23545;&#20110;&#22797;&#26434;json">&#23545;&#20110;&#22797;&#26434;json<a class="anchor-link" href="#&#23545;&#20110;&#22797;&#26434;json">&#182;</a></h2><p>对于复杂json，细读API文档和测试尤其关键，可能有些功能是测试完才知道如何实现和体现其价值的</p>
<h2 id="&#24605;&#32771;&#22320;&#22270;POI&#20013;&#30340;&#25512;&#33616;&#31639;&#27861;&#24037;&#20316;&#21407;&#29702;">&#24605;&#32771;&#22320;&#22270;POI&#20013;&#30340;&#25512;&#33616;&#31639;&#27861;&#24037;&#20316;&#21407;&#29702;<a class="anchor-link" href="#&#24605;&#32771;&#22320;&#22270;POI&#20013;&#30340;&#25512;&#33616;&#31639;&#27861;&#24037;&#20316;&#21407;&#29702;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span> 
</pre></div>

    </div>
</div>
</div>

</div>
    </div>
  </div>
</body>

 


</html>
